From 4a47f287e238d661ee4c59ef5aff09f9498e969b Mon Sep 17 00:00:00 2001 From: SedLex Date: Tue, 29 Jul 2014 10:06:55 +0000 Subject: [PATCH] * First release : enjoy ! --- core.class.php | 1666 +++++++++++++ core.nfo | 1 + core.php | 61 + core/admin_table.class.php | 390 +++ core/box.class.php | 56 + core/browser.class.php | 441 ++++ core/css/diff_admin.css | 53 + core/css/msgbox_admin.css | 27 + core/css/otherplugins_admin.css | 24 + core/css/parameters_admin.css | 14 + core/css/popup_admin.css | 74 + core/css/post_admin.css | 62 + core/css/tabs_admin.css | 77 + core/css/translation_admin.css | 13 + core/css/tree_admin.css | 48 + .../data/SLFramework_OtherPlugins_201407.data | 453 ++++ core/data/framework.info | 5 + core/debug.class.php | 98 + core/feedback.class.php | 194 ++ core/img/ajax-loader.gif | Bin 0 -> 673 bytes core/img/arrow_down.png | Bin 0 -> 273 bytes core/img/arrow_down_s.png | Bin 0 -> 279 bytes core/img/arrow_up.png | Bin 0 -> 250 bytes core/img/arrow_up_s.png | Bin 0 -> 254 bytes core/img/close_popup.png | Bin 0 -> 3429 bytes core/img/error.png | Bin 0 -> 4340 bytes core/img/file.png | Bin 0 -> 8406 bytes core/img/flags_sprite.png | Bin 0 -> 31098 bytes core/img/info.png | Bin 0 -> 4403 bytes core/img/param.png | Bin 0 -> 451 bytes core/img/progressbar.png | Bin 0 -> 1466 bytes core/img/star.gif | Bin 0 -> 109 bytes core/img/tab_doc.png | Bin 0 -> 841 bytes core/img/tab_empty.png | Bin 0 -> 77 bytes core/img/tab_how.png | Bin 0 -> 536 bytes core/img/tab_list.png | Bin 0 -> 533 bytes core/img/tab_mail.png | Bin 0 -> 679 bytes core/img/tab_param.png | Bin 0 -> 507 bytes core/img/tab_plug.png | Bin 0 -> 729 bytes core/img/tab_trad.png | Bin 0 -> 919 bytes core/img/title_popup.png | Bin 0 -> 2790 bytes core/img/tree_lastnode.png | Bin 0 -> 144 bytes core/img/tree_lastnode_minus.png | Bin 0 -> 144 bytes core/img/tree_lastnode_plus.png | Bin 0 -> 147 bytes core/img/tree_node.png | Bin 0 -> 145 bytes core/img/tree_node_minus.png | Bin 0 -> 145 bytes core/img/tree_node_plus.png | Bin 0 -> 152 bytes core/img/tree_vline.png | Bin 0 -> 123 bytes core/img/valid.png | Bin 0 -> 4447 bytes core/img/warning.png | Bin 0 -> 4567 bytes core/js/feedback_admin.js | 50 + core/js/parameters_admin.js | 111 + core/js/progressbar_admin.js | 21 + core/js/translation_admin.js | 189 ++ core/lang/SL_framework-ar_JO.mo | Bin 0 -> 1939 bytes core/lang/SL_framework-ar_JO.po | 131 + core/lang/SL_framework-bg_BG.mo | Bin 0 -> 12470 bytes core/lang/SL_framework-bg_BG.po | 433 ++++ core/lang/SL_framework-cs_CZ.mo | Bin 0 -> 13720 bytes core/lang/SL_framework-cs_CZ.po | 414 ++++ core/lang/SL_framework-de_DE.mo | Bin 0 -> 17120 bytes core/lang/SL_framework-de_DE.po | 453 ++++ core/lang/SL_framework-el_GR.mo | Bin 0 -> 6494 bytes core/lang/SL_framework-el_GR.po | 236 ++ core/lang/SL_framework-es_ES.mo | Bin 0 -> 16688 bytes core/lang/SL_framework-es_ES.po | 445 ++++ core/lang/SL_framework-es_GT.mo | Bin 0 -> 6486 bytes core/lang/SL_framework-es_GT.po | 469 ++++ core/lang/SL_framework-es_MX.mo | Bin 0 -> 6062 bytes core/lang/SL_framework-es_MX.po | 438 ++++ core/lang/SL_framework-fa_IR.mo | Bin 0 -> 18731 bytes core/lang/SL_framework-fa_IR.po | 430 ++++ core/lang/SL_framework-fr_FR.mo | Bin 0 -> 17047 bytes core/lang/SL_framework-fr_FR.po | 442 ++++ core/lang/SL_framework-he_IL.mo | Bin 0 -> 2559 bytes core/lang/SL_framework-he_IL.po | 736 ++++++ core/lang/SL_framework-hr_HR.mo | Bin 0 -> 14215 bytes core/lang/SL_framework-hr_HR.po | 408 +++ core/lang/SL_framework-hu_HU.mo | Bin 0 -> 4581 bytes core/lang/SL_framework-hu_HU.po | 154 ++ core/lang/SL_framework-id_ID.mo | Bin 0 -> 97 bytes core/lang/SL_framework-id_ID.po | 28 + core/lang/SL_framework-in_ID.mo | Bin 0 -> 4398 bytes core/lang/SL_framework-in_ID.po | 213 ++ core/lang/SL_framework-it_IT.mo | Bin 0 -> 16784 bytes core/lang/SL_framework-it_IT.po | 439 ++++ core/lang/SL_framework-ja_JP.mo | Bin 0 -> 974 bytes core/lang/SL_framework-ja_JP.po | 541 ++++ core/lang/SL_framework-ko_KR.mo | Bin 0 -> 3030 bytes core/lang/SL_framework-ko_KR.po | 439 ++++ core/lang/SL_framework-lt_LT.mo | Bin 0 -> 15831 bytes core/lang/SL_framework-lt_LT.po | 441 ++++ core/lang/SL_framework-nl_NL.mo | Bin 0 -> 15150 bytes core/lang/SL_framework-nl_NL.po | 442 ++++ core/lang/SL_framework-pl_PL.mo | Bin 0 -> 16144 bytes core/lang/SL_framework-pl_PL.po | 478 ++++ core/lang/SL_framework-pt_BR.mo | Bin 0 -> 7143 bytes core/lang/SL_framework-pt_BR.po | 287 +++ core/lang/SL_framework-pt_PT.mo | Bin 0 -> 15452 bytes core/lang/SL_framework-pt_PT.po | 404 +++ core/lang/SL_framework-ro_RO.mo | Bin 0 -> 2018 bytes core/lang/SL_framework-ro_RO.po | 137 + core/lang/SL_framework-ru_RU.mo | Bin 0 -> 20977 bytes core/lang/SL_framework-ru_RU.po | 447 ++++ core/lang/SL_framework-th_TH.mo | Bin 0 -> 2507 bytes core/lang/SL_framework-th_TH.po | 742 ++++++ core/lang/SL_framework-tr_TR.mo | Bin 0 -> 4503 bytes core/lang/SL_framework-tr_TR.po | 217 ++ core/lang/SL_framework-uk_UA.mo | Bin 0 -> 3047 bytes core/lang/SL_framework-uk_UA.po | 139 ++ core/lang/SL_framework-vi_VN.mo | Bin 0 -> 224 bytes core/lang/SL_framework-vi_VN.po | 34 + core/lang/SL_framework-zh_CN.mo | Bin 0 -> 14622 bytes core/lang/SL_framework-zh_CN.po | 445 ++++ core/lang/SL_framework.pot | 736 ++++++ core/lang/wp_lang_3.3.1.ini | 1 + core/lang/wp_lang_3.5.ini | 1 + core/lang/wp_lang_3.5.ini.tmp | 1 + core/otherplugins.class.php | 211 ++ core/parameters.class.php | 970 ++++++++ core/popup.class.php | 99 + core/progress_bar.class.php | 54 + core/tabs.class.php | 146 ++ core/templates/css/css_admin.css | 0 core/templates/css/css_front.css | 0 core/templates/js/js_admin.js | 0 core/templates/js/js_front.js | 0 core/templates/my-plugin.php | 369 +++ core/templates/readme.txt | 34 + core/text_diff.class.php | 219 ++ core/translation.class.php | 1482 +++++++++++ core/translation.inc.php | 1803 ++++++++++++++ core/tree.class.php | 224 ++ core/utils.class.php | 346 +++ css/css_admin.css | 0 css/css_front.css | 337 +++ img/banner-1544x500.png | Bin 0 -> 223493 bytes img/banner-772x250.png | Bin 0 -> 92240 bytes img/legi.png | Bin 0 -> 1062 bytes js/js_admin.js | 0 js/js_front.js | 0 lang/legi_display-fr_FR.mo | Bin 0 -> 5398 bytes lang/legi_display-fr_FR.po | 142 ++ lang/legi_display.pot | 204 ++ legi-display.php | 2197 +++++++++++++++++ readme.txt | 58 + screenshot-1.png | Bin 0 -> 95057 bytes screenshot-2.png | Bin 0 -> 69880 bytes 148 files changed, 24824 insertions(+) create mode 100644 core.class.php create mode 100644 core.nfo create mode 100644 core.php create mode 100644 core/admin_table.class.php create mode 100644 core/box.class.php create mode 100644 core/browser.class.php create mode 100644 core/css/diff_admin.css create mode 100644 core/css/msgbox_admin.css create mode 100644 core/css/otherplugins_admin.css create mode 100644 core/css/parameters_admin.css create mode 100644 core/css/popup_admin.css create mode 100644 core/css/post_admin.css create mode 100644 core/css/tabs_admin.css create mode 100644 core/css/translation_admin.css create mode 100644 core/css/tree_admin.css create mode 100644 core/data/SLFramework_OtherPlugins_201407.data create mode 100644 core/data/framework.info create mode 100644 core/debug.class.php create mode 100644 core/feedback.class.php create mode 100644 core/img/ajax-loader.gif create mode 100644 core/img/arrow_down.png create mode 100644 core/img/arrow_down_s.png create mode 100644 core/img/arrow_up.png create mode 100644 core/img/arrow_up_s.png create mode 100644 core/img/close_popup.png create mode 100644 core/img/error.png create mode 100644 core/img/file.png create mode 100644 core/img/flags_sprite.png create mode 100644 core/img/info.png create mode 100644 core/img/param.png create mode 100644 core/img/progressbar.png create mode 100644 core/img/star.gif create mode 100644 core/img/tab_doc.png create mode 100644 core/img/tab_empty.png create mode 100644 core/img/tab_how.png create mode 100644 core/img/tab_list.png create mode 100644 core/img/tab_mail.png create mode 100644 core/img/tab_param.png create mode 100644 core/img/tab_plug.png create mode 100644 core/img/tab_trad.png create mode 100644 core/img/title_popup.png create mode 100644 core/img/tree_lastnode.png create mode 100644 core/img/tree_lastnode_minus.png create mode 100644 core/img/tree_lastnode_plus.png create mode 100644 core/img/tree_node.png create mode 100644 core/img/tree_node_minus.png create mode 100644 core/img/tree_node_plus.png create mode 100644 core/img/tree_vline.png create mode 100644 core/img/valid.png create mode 100644 core/img/warning.png create mode 100644 core/js/feedback_admin.js create mode 100644 core/js/parameters_admin.js create mode 100644 core/js/progressbar_admin.js create mode 100644 core/js/translation_admin.js create mode 100644 core/lang/SL_framework-ar_JO.mo create mode 100644 core/lang/SL_framework-ar_JO.po create mode 100644 core/lang/SL_framework-bg_BG.mo create mode 100644 core/lang/SL_framework-bg_BG.po create mode 100644 core/lang/SL_framework-cs_CZ.mo create mode 100644 core/lang/SL_framework-cs_CZ.po create mode 100644 core/lang/SL_framework-de_DE.mo create mode 100644 core/lang/SL_framework-de_DE.po create mode 100644 core/lang/SL_framework-el_GR.mo create mode 100644 core/lang/SL_framework-el_GR.po create mode 100644 core/lang/SL_framework-es_ES.mo create mode 100644 core/lang/SL_framework-es_ES.po create mode 100644 core/lang/SL_framework-es_GT.mo create mode 100644 core/lang/SL_framework-es_GT.po create mode 100644 core/lang/SL_framework-es_MX.mo create mode 100644 core/lang/SL_framework-es_MX.po create mode 100644 core/lang/SL_framework-fa_IR.mo create mode 100644 core/lang/SL_framework-fa_IR.po create mode 100644 core/lang/SL_framework-fr_FR.mo create mode 100644 core/lang/SL_framework-fr_FR.po create mode 100644 core/lang/SL_framework-he_IL.mo create mode 100644 core/lang/SL_framework-he_IL.po create mode 100644 core/lang/SL_framework-hr_HR.mo create mode 100644 core/lang/SL_framework-hr_HR.po create mode 100644 core/lang/SL_framework-hu_HU.mo create mode 100644 core/lang/SL_framework-hu_HU.po create mode 100644 core/lang/SL_framework-id_ID.mo create mode 100644 core/lang/SL_framework-id_ID.po create mode 100644 core/lang/SL_framework-in_ID.mo create mode 100644 core/lang/SL_framework-in_ID.po create mode 100644 core/lang/SL_framework-it_IT.mo create mode 100644 core/lang/SL_framework-it_IT.po create mode 100644 core/lang/SL_framework-ja_JP.mo create mode 100644 core/lang/SL_framework-ja_JP.po create mode 100644 core/lang/SL_framework-ko_KR.mo create mode 100644 core/lang/SL_framework-ko_KR.po create mode 100644 core/lang/SL_framework-lt_LT.mo create mode 100644 core/lang/SL_framework-lt_LT.po create mode 100644 core/lang/SL_framework-nl_NL.mo create mode 100644 core/lang/SL_framework-nl_NL.po create mode 100644 core/lang/SL_framework-pl_PL.mo create mode 100644 core/lang/SL_framework-pl_PL.po create mode 100644 core/lang/SL_framework-pt_BR.mo create mode 100644 core/lang/SL_framework-pt_BR.po create mode 100644 core/lang/SL_framework-pt_PT.mo create mode 100644 core/lang/SL_framework-pt_PT.po create mode 100644 core/lang/SL_framework-ro_RO.mo create mode 100644 core/lang/SL_framework-ro_RO.po create mode 100644 core/lang/SL_framework-ru_RU.mo create mode 100644 core/lang/SL_framework-ru_RU.po create mode 100644 core/lang/SL_framework-th_TH.mo create mode 100644 core/lang/SL_framework-th_TH.po create mode 100644 core/lang/SL_framework-tr_TR.mo create mode 100644 core/lang/SL_framework-tr_TR.po create mode 100644 core/lang/SL_framework-uk_UA.mo create mode 100644 core/lang/SL_framework-uk_UA.po create mode 100644 core/lang/SL_framework-vi_VN.mo create mode 100644 core/lang/SL_framework-vi_VN.po create mode 100644 core/lang/SL_framework-zh_CN.mo create mode 100644 core/lang/SL_framework-zh_CN.po create mode 100644 core/lang/SL_framework.pot create mode 100644 core/lang/wp_lang_3.3.1.ini create mode 100644 core/lang/wp_lang_3.5.ini create mode 100644 core/lang/wp_lang_3.5.ini.tmp create mode 100644 core/otherplugins.class.php create mode 100644 core/parameters.class.php create mode 100644 core/popup.class.php create mode 100644 core/progress_bar.class.php create mode 100644 core/tabs.class.php create mode 100644 core/templates/css/css_admin.css create mode 100644 core/templates/css/css_front.css create mode 100644 core/templates/js/js_admin.js create mode 100644 core/templates/js/js_front.js create mode 100644 core/templates/my-plugin.php create mode 100644 core/templates/readme.txt create mode 100644 core/text_diff.class.php create mode 100644 core/translation.class.php create mode 100644 core/translation.inc.php create mode 100644 core/tree.class.php create mode 100644 core/utils.class.php create mode 100644 css/css_admin.css create mode 100644 css/css_front.css create mode 100644 img/banner-1544x500.png create mode 100644 img/banner-772x250.png create mode 100644 img/legi.png create mode 100644 js/js_admin.js create mode 100644 js/js_front.js create mode 100644 lang/legi_display-fr_FR.mo create mode 100644 lang/legi_display-fr_FR.po create mode 100644 lang/legi_display.pot create mode 100644 legi-display.php create mode 100644 readme.txt create mode 100644 screenshot-1.png create mode 100644 screenshot-2.png diff --git a/core.class.php b/core.class.php new file mode 100644 index 0000000..345026d --- /dev/null +++ b/core.class.php @@ -0,0 +1,1666 @@ +_init(); + } + + //Button for tinyMCE + add_action('init', array( $this, '_button_editor')); + add_action('parse_request', array($this,'create_js_for_tinymce') , 1); + + add_action('admin_menu', array( $this, 'admin_menu')); + add_filter('plugin_row_meta', array( $this, 'plugin_actions'), 10, 2); + add_filter('plugin_action_links', array($this, 'plugin_action_links'), 10, 2); + add_action('init', array( $this, 'init_textdomain')); + add_action('init', array( $this, 'update_plugin')); + + // Public Script + add_action('wp_enqueue_scripts', array( $this, 'javascript_front'), 5); + add_action('wp_enqueue_scripts', array( $this, 'css_front'), 5); + if (method_exists($this,'_public_js_load')) { + add_action('wp_enqueue_scripts', array($this,'_public_js_load')); + } + if (method_exists($this,'_public_css_load')) { + add_action('wp_enqueue_scripts', array($this,'_public_css_load')); + } + add_action('wp_enqueue_scripts', array( $this, 'flush_js'), 10000000); + add_action('wp_enqueue_scripts', array( $this, 'flush_css'), 10000000); + + // Admin Script + add_action('admin_enqueue_scripts', array( $this, 'javascript_admin'), 5); // Only for SL page + add_action('admin_enqueue_scripts', array( $this, 'css_admin'), 5);// Only for SL page + if (method_exists($this,'_admin_js_load')) { + add_action('admin_enqueue_scripts', array($this,'_admin_js_load')); + } + if (method_exists($this,'_admin_css_load')) { + add_action('admin_enqueue_scripts', array($this,'_admin_css_load')); + } + add_action('admin_enqueue_scripts', array( $this, 'flush_js'), 10000000);// Only for SL page + add_action('admin_enqueue_scripts', array( $this, 'flush_css'), 10000000);// Only for SL page + + // We add an ajax call for the translation class + add_action('wp_ajax_translate_add', array('SLFramework_Translation','translate_add')) ; + add_action('wp_ajax_translate_modify', array('SLFramework_Translation','translate_modify')) ; + add_action('wp_ajax_translate_create', array('SLFramework_Translation','translate_create')) ; + add_action('wp_ajax_send_translation', array('SLFramework_Translation','send_translation')) ; + add_action('wp_ajax_update_summary', array('SLFramework_Translation','update_summary')) ; + + // We add an ajax call for the parameter class + add_action('wp_ajax_del_param', array($this,'del_param_callback')) ; + add_action('wp_ajax_add_param', array($this,'add_param_callback')) ; + + // We add an ajax call for the feedback class + add_action('wp_ajax_send_feedback', array('feedbackSL','send_feedback')) ; + + // Enable the modification of the content and of the excerpt + add_filter('the_content', array($this,'the_content_SL'), 1000); + add_filter('get_the_excerpt', array( $this, 'the_excerpt_SL'),1000000); + add_filter('get_the_excerpt', array( $this, 'the_excerpt_ante_SL'),2); + + // We remove some functionalities + //remove_action('wp_head', 'feed_links_extra', 3); // Displays the links to the extra feeds such as category feeds + //remove_action('wp_head', 'feed_links', 2); // Displays the links to the general feeds: Post and Comment Feed + //remove_action('wp_head', 'rsd_link'); // Displays the link to the Really Simple Discovery service endpoint, EditURI link + //remove_action('wp_head', 'wlwmanifest_link'); // Displays the link to the Windows Live Writer manifest file. + //remove_action('wp_head', 'index_rel_link'); // index link + //remove_action('wp_head', 'parent_post_rel_link'); // prev link + //remove_action('wp_head', 'start_post_rel_link'); // start link + //remove_action('wp_head', 'adjacent_posts_rel_link_wp_head'); // Displays relational links for the posts adjacent to the current post. + //remove_action('wp_head', 'wp_generator'); // Displays the XHTML generator that is generated on the wp_head hook, WP version + + $this->signature = '

© SedLex - http://www.sedlex.fr/

' ; + + $this->frmk = new coreSLframework() ; + $this->excerpt_called_SL = false ; + } + + /** ==================================================================================================================================================== + * In order to install the plugin, few things are to be done ... + * This function is not supposed to be called from your plugin : it is a purely internal function called when you activate the plugin + * + * If you have to do some stuff when the plgin is activated (such as update the database format), please create an _update function in your plugin + * + * @access private + * @see subclass::_update + * @see pluginSedLex::uninstall + * @see pluginSedLex::deactivate + * @param boolean $network_wide true if a network activation is in progress (see http://core.trac.wordpress.org/ticket/14170#comment:30) + * @return void + */ + + public function install ($network_wide) { + global $wpdb; + + // If the website is multisite, we have to call each install manually to create the table because it is called only for the main site. + // (see http://core.trac.wordpress.org/ticket/14170#comment:18) + + if (function_exists('is_multisite') && is_multisite() && $network_wide ){ + $old_blog = $wpdb->blogid; + $old_prefix = $wpdb->prefix ; + // Get all blog ids + $blogids = $wpdb->get_col($wpdb->prepare("SELECT blog_id FROM $wpdb->blogs")); + foreach ($blogids as $blog_id) { + switch_to_blog($blog_id); + $this->singleSite_install(str_replace($old_prefix, $wpdb->prefix, $this->table_name)) ; + } + switch_to_blog($old_blog); + } else { + $this->singleSite_install($this->table_name) ; + } + } + + /** ==================================================================================================================================================== + * In order to install the plugin, few things are to be done ... + * This function is not supposed to be called from your plugin : it is a purely internal function called when you activate the plugin + * + * @access private + * @see subclass::_update + * @see pluginSedLex::uninstall_removedata + * @see pluginSedLex::deactivate + * @param string $table_name the SQL table name for the plugin + * @return void + */ + + public function singleSite_install($table_name) { + global $wpdb ; + global $db_version; + + if (strlen(trim($this->tableSQL))>0) { + if($wpdb->get_var("show tables like '".$table_name."'") != $table_name) { + $sql = "CREATE TABLE " . $table_name . " (".$this->tableSQL. ") DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ;"; + + require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); + dbDelta($sql); + + add_option("db_version", $db_version); + + // Gestion de l'erreur + ob_start() ; + $wpdb->print_error(); + $result = ob_get_clean() ; + if (strlen($result)>0) { + echo $result ; + die() ; + } + } + } + + if (method_exists($this,'_update')) { + $this->_update() ; + } + } + + /** ==================================================================================================================================================== + * In order to update the plugin, few things are to be done ... + * This function is not supposed to be called from your plugin : it is a purely internal function called when you activate the plugin + * + * @access private + * @see subclass::_update + * @see pluginSedLex::uninstall_removedata + * @see pluginSedLex::deactivate + * @param string $table_name the SQL table name for the plugin + * @return void + */ + + public function update_plugin() { + if (method_exists($this,'_update')) { + $this->_update() ; + } + } + + /** ==================================================================================================================================================== + * Get the plugin ID + * + * @return string the plugin ID string. the string will be empty if it is not a plugin (i.e. the framework) + */ + public function getPluginID () { + $tmp = $this->pluginID ; + if ($tmp=="coreSLframework") + return "" ; + return $tmp ; + } + + /** ==================================================================================================================================================== + * In order to deactivate the plugin, few things are to be done ... + * This function is not supposed to be called from your plugin : it is a purely internal function called when you de-activate the plugin + * + * For now the function does nothing (but have to be declared) + * + * @access private + * @see pluginSedLex::install + * @see pluginSedLex::uninstall_removedata + * @return void + */ + public function deactivate () { + //Nothing to do + } + + /** ==================================================================================================================================================== + * Get the value of an option of the plugin + * + * For instance: echo $this->get_param('opt1') will return the value of the option 'opt1' stored for this plugin. Please note that two different plugins may have options with the same name without any conflict. + * + * @see pluginSedLex::set_param + * @see pluginSedLex::get_name_params + * @see pluginSedLex::del_param + * @see SLFramework_Parameters::SLFramework_Parameters + * @param string $option the name of the option + * @return mixed the value of the option requested + */ + + public function get_param($option) { + + if (is_multisite() && preg_match('/^global_/', $option)) { + $options = get_site_option($this->pluginID.'_options'); + } else { + $options = get_option($this->pluginID.'_options'); + } + + if (!isset($options[$option])) { + if ( (is_string($this->get_default_option($option))) && (substr($this->get_default_option($option), 0, 1)=="*") ) { + $options[$option] = substr($this->get_default_option($option), 1) ; + } else { + $options[$option] = $this->get_default_option($option) ; + } + // Update with the default value + if (is_multisite() && preg_match('/^global_/', $option)) { + update_site_option($this->pluginID.'_options', $options); + } else { + update_option($this->pluginID.'_options', $options); + } + } + + return $options[$option] ; + } + + /** ==================================================================================================================================================== + * Get the value of an option of the plugin (macro) + * + * For instance: echo $this->get_param_macro('opt1') will return all values of the option 'opt1' stored for this plugin. Please note that two different plugins may have options with the same name without any conflict. + * + * @see pluginSedLex::set_param + * @see pluginSedLex::get_name_params + * @see pluginSedLex::del_param + * @see SLFramework_Parameters::SLFramework_Parameters + * @param string $option the name of the option + * @return mixed the value of the option requested + */ + + public function get_param_macro($option) { + $i = 0 ; + $results = array() ; + + if (is_multisite() && preg_match('/^global_/', $option)) { + $options = get_site_option($this->pluginID.'_options'); + } else { + $options = get_option($this->pluginID.'_options'); + } + + while (isset($options[$option."_macro".($i)])) { + $results[] = $options[$option."_macro".($i)] ; + $i++ ; + } + + return $results ; + } + + + /** ==================================================================================================================================================== + * Get name of all options + * + * For instance: echo $this->get_name_params() will return an array with the name of all the options of the plugin + * + * @see pluginSedLex::set_param + * @see pluginSedLex::get_param + * @see pluginSedLex::del_param + * @see SLFramework_Parameters::SLFramework_Parameters + * @return array an array with all option names + */ + + public function get_name_params() { + if (is_multisite()) { + $options = get_site_option($this->pluginID.'_options'); + } else { + $options = get_option($this->pluginID.'_options'); + } + + if (is_array($options)) { + $results = array() ; + foreach ($options as $o => $v) { + $results[] = $o ; + } + return $results ; + } else { + return array() ; + } + } + + /** ==================================================================================================================================================== + * Delete an option of the plugin + * + * For instance: echo $this->get_param('opt1') will return the value of the option 'opt1' stored for this plugin. Please note that two different plugins may have options with the same name without any conflict. + * + * @see pluginSedLex::set_param + * @see pluginSedLex::get_name_params + * @see pluginSedLex::gel_param + * @see SLFramework_Parameters::SLFramework_Parameters + * @param string $option the name of the option + * @param string $pluginID the plugin ID (or the current plugin ID by default) + * @return void + */ + + public function del_param($option, $pluginID="") { + if ($pluginID=="") { + $pluginID = $this->pluginID ; + } + + if (is_multisite()) { + $options = get_site_option($pluginID.'_options'); + } else { + $options = get_option($pluginID.'_options'); + } + + // We handle the case where it is a macro param + if (preg_match("/^(.*)_macro([0-9]*)$/", $option, $match)) { + + $name_param = $match[1] ; + $from_int = intval($match[2]) ; + $i = $from_int+1 ; + // We shift all the variable name + while (isset($options[$name_param."_macro".($i)])) { + $options[$name_param."_macro".($i-1)] = $options[$name_param."_macro".($i)] ; + $i++ ; + } + if (isset($options[$name_param."_macro".($i-1)])) { + unset($options[$name_param."_macro".($i-1)]) ; + } + if ($i==1) { + $instance_plugin = call_user_func(array($pluginID, 'getInstance')); ; + $options[$name_param."_macro0"] = $instance_plugin->get_default_option($name_param) ; + } + } else { + // It is not a macro param, then we just unset it + if (isset($options[$option])) { + unset($options[$option]) ; + } + } + + if (is_multisite()) { + update_site_option($pluginID.'_options', $options); + } else { + update_option($pluginID.'_options', $options); + } + return ; + } + + /** ==================================================================================================================================================== + * Callback to remove a parameter + * + * It will also remove any comment for the same + * + * @access private + * @return void + */ + + function del_param_callback() { + global $_POST ; + $options = $_POST['param'] ; + $pluginID = $_POST['pluginID'] ; + + foreach ($options as $o) { + $this->del_param($o, $pluginID) ; + } + + echo "ok" ; + die() ; + } + + /** ==================================================================================================================================================== + * Callback to add a parameter + * + * It will also remove any comment for the same + * + * @access private + * @return void + */ + + function add_param_callback() { + global $_POST ; + $options = $_POST['param'] ; + $pluginID = $_POST['pluginID'] ; + + if (is_multisite()) { + $options_to_be_updated = get_site_option($pluginID.'_options'); + } else { + $options_to_be_updated = get_option($pluginID.'_options'); + } + + foreach ($options as $o) { + // We handle the case where it is a macro param + if (preg_match("/^(.*)_macro$/", $o, $match)) { + $name_param = $match[1] ; + $i = 1 ; + // We shift all the variable name + while (isset($options_to_be_updated[$name_param."_macro".($i)])) { + $i++ ; + } + $instance_plugin = call_user_func(array($pluginID, 'getInstance')); ; + $options_to_be_updated[$name_param."_macro".($i)] = $instance_plugin->get_default_option($name_param) ; + } else { + // It is not a macro param, then we just set it + $instance_plugin = call_user_func(array($pluginID, 'getInstance')); ; + $options_to_be_updated[$name_param] = $instance_plugin->get_default_option($name_param) ; + } + + if (is_multisite()) { + update_site_option($pluginID.'_options', $options_to_be_updated); + } else { + update_option($pluginID.'_options', $options_to_be_updated); + } + } + + echo "ok" ; + die() ; + } + + /** ==================================================================================================================================================== + * Set the option of the plugin + * + * For instance, $this->set_param('opt1', 'val1') will store the string 'val1' for the option 'opt1'. Any object may be stored in the options + * + * @see pluginSedLex::get_param + * @see SLFramework_Parameters::SLFramework_Parameters + * @param string $option the name of the option + * @param mixed $value the value of the option to be saved + * @return void + */ + public function set_param($option, $value) { + if (is_multisite() && preg_match('/^global_/', $option)) { + $options = get_site_option($this->pluginID.'_options'); + } else { + $options = get_option($this->pluginID.'_options'); + } + + $options[$option] = $value ; + + if (is_multisite() && preg_match('/^global_/', $option)) { + update_site_option($this->pluginID.'_options', $options); + } else { + update_option($this->pluginID.'_options', $options); + } + } + + /** ==================================================================================================================================================== + * Create the menu & submenu in the admin section + * This function is not supposed to be called from your plugin : it is a purely internal function called when you de-activate the plugin + * + * @access private + * @return void + */ + public function admin_menu() { + + global $menu,$SLtopLevel_alreadyInstalled,$SLpluginActivated ; + + $tmp = explode('/',plugin_basename($this->path)) ; + $plugin = $tmp[0]."/".$tmp[0].".php" ; + $topLevel = "sedlex.php" ; + + + $glp = $this->frmk->get_param('global_location_plugin') ; + $selection_pos = "std" ; + foreach ($glp as $a) { + if (substr($a[0],0,1)=="*") { + $selection_pos = $a[1] ; + } + } + + if (!$SLtopLevel_alreadyInstalled) { + $SLtopLevel_alreadyInstalled = true ; + + if ($selection_pos=="plugins") { + $page = add_submenu_page('plugins.php', __('About SL plugins...', 'SL_framework'), __('About SL plugins...', 'SL_framework'), 'activate_plugins', $topLevel, array($this,'sedlex_information')); + } else if ($selection_pos=="tools") { + $page = add_submenu_page('tools.php', __('About SL plugins...', 'SL_framework'), __('About SL plugins...', 'SL_framework'), 'activate_plugins', $topLevel, array($this,'sedlex_information')); + } else if ($selection_pos=="settings") { + $page = add_submenu_page('options-general.php', __('About SL plugins...', 'SL_framework'), __('About SL plugins...', 'SL_framework'), 'activate_plugins', $topLevel, array($this,'sedlex_information')); + } else { + //add main menu + add_object_page('SL Plugins', 'SL Plugins', 'activate_plugins', $topLevel, array($this,'sedlex_information')); + $page = add_submenu_page($topLevel, __('About...', 'SL_framework'), __('About...', 'SL_framework'), 'activate_plugins', $topLevel, array($this,'sedlex_information')); + } + } + + //add sub menus + $number = "" ; + if (method_exists($this,'_notify')) { + $number = $this->_notify() ; + if (is_numeric($number)) { + if ($number>0) { + $number = "".$number."" ; + } else { + $number = "" ; + } + } else { + $number = "" ; + } + } + + $SLpluginActivated[] = $plugin ; + + if ($selection_pos=="plugins") { + $page = add_submenu_page('plugins.php', $this->pluginName, $this->pluginName . $number, 'activate_plugins', $plugin, array($this,'configuration_page')); + } else if ($selection_pos=="tools") { + $page = add_submenu_page('tools.php', $this->pluginName, $this->pluginName . $number, 'activate_plugins', $plugin, array($this,'configuration_page')); + } else if ($selection_pos=="settings") { + $page = add_submenu_page('options-general.php', $this->pluginName, $this->pluginName . $number, 'activate_plugins', $plugin, array($this,'configuration_page')); + } else { + $page = add_submenu_page($topLevel, $this->pluginName, $this->pluginName . $number, 'activate_plugins', $plugin, array($this,'configuration_page')); + } + } + + /** ==================================================================================================================================================== + * Add a link in the new link along with the standard activate/deactivate and edit in the plugin admin page. + * This function is not supposed to be called from your plugin : it is a purely internal function + * + * @access private + * @param array $links links such as activate/deactivate and edit + * @param string $file the related file of the plugin + * @return array of new links set with a Settings link added + */ + public function plugin_actions($links, $file) { + + // Ne pas mettre de lien pour la partie admin + if (is_network_admin()) { + return $links ; + } + + $tmp = explode('/',plugin_basename($this->path)) ; + $plugin = $tmp[0]."/".$tmp[0].".php" ; + if ($file == $plugin) { + return array_merge( + $links, + array( ''. __('Settings', 'SL_framework') .'') + ); + } + + return $links; + } + + /** ==================================================================================================================================================== + * Handler for the 'plugin_action_links' hook. Adds a "Settings" link to this plugin's entry + * on the plugin list. + * + * @access private + * @param array $links + * @param string $file + * @return array + */ + function plugin_action_links($links, $file) { + $tmp = explode('/',plugin_basename($this->path)) ; + $plugin = $tmp[0]."/".$tmp[0].".php" ; + if ($file == $plugin) { + return array_merge( + $links, + array( ''. __('Settings', 'SL_framework') .'') + ); + } + return $links; + } + + /** ==================================================================================================================================================== + * Translate the plugin with international settings + * This function is not supposed to be called from your plugin : it is a purely internal function + * + * In order to enable translation, please add .mo and .po files in the /lang folder of the plugin + * + * @access private + * @return void + */ + public function init_textdomain() { + load_plugin_textdomain($this->pluginID, false, dirname( plugin_basename( $this->path ) ). '/lang/') ; + load_plugin_textdomain('SL_framework', false, dirname( plugin_basename( $this->path ) ). '/core/lang/') ; + } + + /** ==================================================================================================================================================== + * Functions to add a button in the TinyMCE Editor + * + * @access private + * @return void + */ + + function _button_editor() { + // Do not modify this function + if(is_admin()){ + if ( ! current_user_can('edit_posts') && ! current_user_can('edit_pages') ) + return; + + if (is_callable( array($this, 'add_tinymce_buttons') ) ) { + if (count($this->add_tinymce_buttons())>0) { + if ( get_user_option('rich_editing') == 'true') { + add_filter('mce_external_plugins', array($this, 'add_custom_button')); + add_filter('mce_buttons', array($this, 'register_custom_button'), 999 ); + add_filter('tiny_mce_version', array($this, 'my_refresh_mce')); + } + } + } + } + } + + function register_custom_button($buttons) { + // Do not modify this function + if (is_callable( array($this, 'add_tinymce_buttons') ) ) { + if (count($this->add_tinymce_buttons())>0) { + array_push($buttons, "|"); + } + $i = 0 ; + foreach ($this->add_tinymce_buttons() as $button) { + $i++ ; + array_push($buttons, "customButton_".$this->pluginID."_".$i) ; + } + } + + return $buttons; + } + + function add_custom_button($plugin_array) { + if (is_callable( array($this, 'add_tinymce_buttons') ) ) { + if (count($this->add_tinymce_buttons())>0) { + $plugin_array["customPluginButtons_".$this->pluginID] = site_url()."/?output_js_tinymce=customPluginButtons_".$this->pluginID ; + } + } + return $plugin_array; + } + + function my_refresh_mce($ver) { + if (is_callable( array($this, 'add_tinymce_buttons') ) ) { + if (count($this->add_tinymce_buttons())>0) { + $ver += 1; + } + } + return $ver; + } + + function create_js_for_tinymce() { + if ((isset($_GET["output_js_tinymce"]))&&($_GET["output_js_tinymce"]=="customPluginButtons_".$this->pluginID)) { + ?> + (function(){ + tinymce.create('tinymce.plugins.pluginID ; ?>', { + + init : function(ed, url){ + add_tinymce_buttons() as $button) { + $i++ ; + ?> + ed.addCommand('pluginID."_".$i ; ?>', function(){ + selected_content = tinyMCE.activeEditor.selection.getContent(); + tinyMCE.activeEditor.selection.setContent('' + selected_content + ''); + }); + + ed.addButton('pluginID."_".$i ; ?>', { + title: '', + image: '', + cmd: 'pluginID."_".$i ; ?>' + }); + + }, + createControl : function(n, cm){ + return null; + } + }); + tinymce.PluginManager.add('pluginID ; ?>', tinymce.plugins.pluginID ; ?>); + })(); + $this->add_js('http://www.monserveur.com/wp-content/plugins/my_plugin/js/foo.js') ; will add the 'my_plugin/js/foo.js' in the header. + * In order to save bandwidth and boost your website, the framework will concat all the added javascript (by this function) and serve the browser with a single js file + * Note : you have to call this function in function your_function called by add_action('wp_print_scripts', array( $this, 'your_function')); + * + * @param string $url the complete http url of the javascript (this javascript should be an internal javascript i.e. stored by your blog and not, for instance, stored by Google) + * @see pluginSedLex::add_inline_js + * @see pluginSedLex::flush_js + * @return void + */ + + public function add_js($url) { + global $sedlex_list_scripts ; + $sedlex_list_scripts[] = str_replace(plugin_dir_url("/"),WP_PLUGIN_DIR,$url) ; + } + + /** ==================================================================================================================================================== + * Add inline javascript in the header + * + * For instance $this->add_inline_js('alert("foo");') ; + * In order to save bandwidth and boost your website, the framework will concat all the added javascript (by this function) and serve the browser with a single js file + * Note : you have to call this function in function your_function called by add_action('wp_print_scripts', array( $this, 'your_function')); + * + * @param string $text the javascript to be inserted in the header (without any \n" ; + } + } + + /** ==================================================================================================================================================== + * Insert the 'single' javascript file in the page + * This function is not supposed to be called from your plugin. This function is called automatically once during the rendering + * + * @access private + * @see pluginSedLex::add_inline_js + * @see pluginSedLex::add_js + * @return void + */ + + public function flush_js($hook) { + global $sedlex_list_scripts ; + + // If it not a plugin page SL page + if (is_admin()) { + $plugin = explode("_", $hook) ; + if (!isset($plugin[count($plugin)-1])) { + return ; + } + if ($plugin[count($plugin)-1]!="sedlex") { + $plugin = explode("/", $plugin[count($plugin)-1]) ; + if ((!isset($plugin[0]))||(!@is_file(WP_PLUGIN_DIR."/".$plugin[0]."/core.class.php"))) + return; + } + } + + + // Repertoire de stockage des css inlines + $path = WP_CONTENT_DIR."/sedlex/inline_scripts"; + if (!is_dir($path)) { + if (!@mkdir("$path", 0755, true)) { + SLFramework_Debug::log(get_class(), "The folder ". WP_CONTENT_DIR."/sedlex/inline_scripts"." cannot be created", 2) ; + } + } + + if (!empty($sedlex_list_scripts)) { + // We create the file if it does not exist + $out = "" ; + foreach( $sedlex_list_scripts as $file ) { + if (@is_file($file)) { + $out .= "\n/*====================================================*/\n"; + $out .= "/* FILE ".str_replace(WP_CONTENT_DIR,"",$file) ."*/\n"; + $out .= "/*====================================================*/\n"; + $out .= @file_get_contents($file) . "\n"; + } else { + $out .= "\n/*====================================================*/\n"; + $out .= "/* FILE NOT FOUND ".str_replace(WP_CONTENT_DIR,"",$file) ."*/\n"; + $out .= "/*====================================================*/\n"; + } + } + $md5 = sha1($out) ; + if (!@is_file(WP_CONTENT_DIR."/sedlex/inline_scripts/".$md5.".js")) { + @file_put_contents(WP_CONTENT_DIR."/sedlex/inline_scripts/".$md5.".js", $out) ; + } + @chmod(WP_CONTENT_DIR."/sedlex/inline_scripts/".$md5.".js", 0755); + + //$url = plugin_dir_url("/").'/'.str_replace(basename(__FILE__),"",plugin_basename(__FILE__)).'core/load-scripts.php?c=0&load='.$md5 ; + $url = content_url("/").'sedlex/inline_scripts/'.$md5.".js" ; + wp_enqueue_script('sedlex_scripts', $url, array() ,date('Ymd')); + $sedlex_list_scripts = array(); + } + } + + /** ==================================================================================================================================================== + * Insert the admin javascript files which is located in the core (you may NOT modify these files) + * This function is not supposed to be called from your plugin. This function is called automatically when you are in the admin page of the plugin + * + * @access private + * @return void + */ + + public function javascript_admin($hook) { + global $sedlex_adminJavascript_tobedisplayed ; + + // If it not a plugin page SL page + $plugin = explode("_", $hook) ; + if (!isset($plugin[count($plugin)-1])) { + return ; + } + if ($plugin[count($plugin)-1]!="sedlex") { + $plugin = explode("/", $plugin[count($plugin)-1]) ; + if ((!isset($plugin[0]))||(!@is_file(WP_PLUGIN_DIR."/".$plugin[0]."/core.class.php"))) + return; + } + + if ($sedlex_adminJavascript_tobedisplayed) { + $sedlex_adminJavascript_tobedisplayed = false ; + + //if (str_replace(basename( __FILE__),"",plugin_basename( __FILE__))==str_replace(basename( $this->path),"",plugin_basename($this->path))) { + // For the tabs of the admin page + wp_enqueue_script('jquery'); + wp_enqueue_script('jquery-ui-core', '', array('jquery'), false ); + wp_enqueue_script('jquery-ui-dialog', '', array('jquery'), false ); + wp_enqueue_script('jquery-ui-tabs', '', array('jquery'), false ); + wp_enqueue_script('jquery-ui-sortable', '', array('jquery'), false ); + wp_enqueue_script('jquery-ui-effects', '', array('jquery', 'jquery-ui'), false ); + + // Pour accéder au media library + wp_enqueue_script('media-upload'); + wp_enqueue_script('thickbox'); + + echo ''."\r\n" ; + + @chmod(WP_PLUGIN_DIR.'/'.str_replace(basename( __FILE__),"",plugin_basename( __FILE__)) .'core/js/', 0755); + + $dir = @opendir(WP_PLUGIN_DIR.'/'.str_replace(basename( __FILE__),"",plugin_basename( __FILE__)) .'core/js/'); + if ($dir !== false) { + while($file = readdir($dir)) { + if (preg_match('@\.js$@i',$file)) { + $path = WP_PLUGIN_DIR.'/'.str_replace(basename( __FILE__),"",plugin_basename( __FILE__)) .'core/js/'.$file ; + $url = plugin_dir_url("/").'/'.str_replace(basename( __FILE__),"",plugin_basename( __FILE__)) .'core/js/'.$file ; + if (@filesize($path)>0) { + $this->add_js($url) ; + } + } + } + } + } + + $name = 'js/js_admin.js' ; + $url = plugin_dir_url("/").'/'.str_replace(basename( $this->path),"",plugin_basename($this->path)) .$name ; + $path = WP_PLUGIN_DIR.'/'.str_replace(basename( $this->path),"",plugin_basename($this->path)) .$name ; + if (file_exists($path)) { + if (@filesize($path)>0) { + $this->add_js($url) ; + } + } + } + + /** ==================================================================================================================================================== + * Insert the admin javascript file which is located in js/js_front.js (you may modify this file in order to customize the rendering) + * This function is not supposed to be called from your plugin. This function is called automatically. + * + * @access private + * @return void + */ + + public function javascript_front() { + $name = 'js/js_front.js' ; + $url = plugin_dir_url("/").'/'.str_replace(basename( $this->path),"",plugin_basename($this->path)) .$name ; + $path = WP_PLUGIN_DIR.'/'.str_replace(basename( $this->path),"",plugin_basename($this->path)) .$name ; + if (file_exists($path)) { + if (@filesize($path)>0) { + $this->add_js($url) ; + } + } + } + + /** ==================================================================================================================================================== + * Add a CSS file in the header + * + * For instance, $this->add_css('http://www.monserveur.com/wp-content/plugins/my_plugin/js/foo.css') ; will add the 'my_plugin/js/foo.css' in the header. + * In order to save bandwidth and boost your website, the framework will concat all the added css (by this function) and serve the browser with a single css file + * Note : you have to call this function in function your_function called by add_action('wp_print_styles', array( $this, 'your_function')); + * + * @param string $url the complete http url of the css file (this css should be an internal javascript i.e. stored by your blog and not, for instance, stored by Google) + * @see pluginSedLex::add_inline_css + * @see pluginSedLex::flush_css + * @return void + */ + + public function add_css($url) { + global $sedlex_list_styles ; + $sedlex_list_styles[] = str_replace(content_url(),WP_CONTENT_DIR,$url) ; + } + + /** ==================================================================================================================================================== + * Add inline CSS in the header + * + * For instance, $this->add_inline_css('.head { color:#FFFFFF; }') ; + * In order to save bandwidth and boost your website, the framework will concat all the added css (by this function) and serve the browser with a single css file + * Note : you have to call this function in function your_function called by add_action('wp_print_styles', array( $this, 'your_function')); + * + * @param string $text the css to be inserted in the header (without any \n" ; + } + } + + /** ==================================================================================================================================================== + * Insert the 'single' css file in the page + * This function is not supposed to be called from your plugin. This function is called automatically once during the rendering + * + * @access private + * @see pluginSedLex::add_inline_css + * @see pluginSedLex::add_css + * @return void + */ + + public function flush_css($hook) { + global $sedlex_list_styles ; + + // If it not a plugin page SL page + if (is_admin()) { + $plugin = explode("_", $hook) ; + if (!isset($plugin[count($plugin)-1])) { + return ; + } + if ($plugin[count($plugin)-1]!="sedlex") { + $plugin = explode("/", $plugin[count($plugin)-1]) ; + if ((!isset($plugin[0]))||(!@is_file(WP_PLUGIN_DIR."/".$plugin[0]."/core.class.php"))) + return; + } + } + + // Repertoire de stockage des css inlines + + $path = WP_CONTENT_DIR."/sedlex/inline_styles"; + $path_ok = false ; + if (!is_dir($path)) { + if (!@mkdir("$path", 0755, true)) { + SLFramework_Debug::log(get_class(), "The folder ". WP_CONTENT_DIR."/sedlex/inline_styles cannot be created", 2) ; + } + } + + if (!empty($sedlex_list_styles)) { + // We create the file if it does not exist + $out = "" ; + foreach( $sedlex_list_styles as $file ) { + if (@is_file($file)) { + $out .= "\n/*====================================================*/\n"; + $out .= "/* FILE ".str_replace(WP_CONTENT_DIR,"",$file) ."*/\n"; + $out .= "/*====================================================*/\n"; + $content = @file_get_contents($file) . "\n"; + // We proceed to some replacement for the image + if (strpos($file,'/sedlex/inline_styles')!==false) { + $out .= $content ; + } else if (strpos($file,'/core/css')===false) { + $temp_path = str_replace(WP_PLUGIN_DIR."/", "", $file) ; + while (substr($temp_path, 0, 1)=="/") { + $temp_path = substr($temp_path, 1) ; + } + list($plugin, $void) = explode('/', $temp_path , 2) ; + $content = str_replace( '../core/img/', plugin_dir_url("/").$plugin.'/core/img/', $content ); + $out .= str_replace( '../img/', plugin_dir_url("/").$plugin.'/img/', $content ); + } else { + $temp_path = str_replace(WP_PLUGIN_DIR."/", "", $file) ; + while (substr($temp_path, 0, 1)=="/") { + $temp_path = substr($temp_path, 1) ; + } + list($plugin, $void) = explode('/', $temp_path, 2) ; + $out .= str_replace( '../img/', plugin_dir_url("/").$plugin.'/core/img/', $content ); + } + } else { + $out .= "\n/*====================================================*/\n"; + $out .= "/* FILE NOT FOUND ".str_replace(WP_CONTENT_DIR,"",$file) ."*/\n"; + $out .= "/*====================================================*/\n"; + } + } + $md5 = sha1($out) ; + if (!@is_file(WP_CONTENT_DIR."/sedlex/inline_styles/".$md5.".css")) { + @file_put_contents(WP_CONTENT_DIR."/sedlex/inline_styles/".$md5.".css", $out) ; + } + + @chmod(WP_CONTENT_DIR."/sedlex/inline_styles/".$md5.".css", 0755); + + //$url = plugin_dir_url("/").'/'.str_replace(basename(__FILE__),"",plugin_basename( __FILE__)).'core/load-styles.php?c=0&load='.$md5 ; + $url = content_url("/").'sedlex/inline_styles/'.$md5.".css" ; + wp_enqueue_style('sedlex_styles', $url, array() ,date('Ymd')); + + $sedlex_list_styles = array(); + } + } + + + /** ==================================================================================================================================================== + * Insert the admin css files which is located in the core (you may NOT modify these files) + * This function is not supposed to be called from your plugin. This function is called automatically when you are in the admin page of the plugin + * + * @access private + * @return void + */ + + public function css_admin($hook) { + global $sedlex_adminCSS_tobedisplayed ; + + // If it not a plugin page SL page + $plugin = explode("_", $hook) ; + if (!isset($plugin[count($plugin)-1])) { + return ; + } + if ($plugin[count($plugin)-1]!="sedlex") { + $plugin = explode("/", $plugin[count($plugin)-1]) ; + if ((!isset($plugin[0]))||(!@is_file(WP_PLUGIN_DIR."/".$plugin[0]."/core.class.php"))) + return; + } + + if ($sedlex_adminCSS_tobedisplayed) { + $sedlex_adminCSS_tobedisplayed = false ; + + // Pour le media box + wp_enqueue_style('thickbox'); + + //if (str_replace(basename( __FILE__),"",plugin_basename( __FILE__))==str_replace(basename( $this->path),"",plugin_basename($this->path))) { + + wp_enqueue_style('wp-admin'); + wp_enqueue_style('dashboard'); + wp_enqueue_style('plugin-install'); + + @chmod(WP_PLUGIN_DIR.'/'.str_replace(basename( __FILE__),"",plugin_basename( __FILE__)) .'core/css/', 0755); + $dir = @opendir(WP_PLUGIN_DIR.'/'.str_replace(basename( __FILE__),"",plugin_basename( __FILE__)) .'core/css/'); + if ($dir!==false) { + while($file = readdir($dir)) { + if (preg_match('@\.css$@i',$file)) { + $path = WP_PLUGIN_DIR.'/'.str_replace(basename( __FILE__),"",plugin_basename( __FILE__)) .'core/css/'.$file ; + $url = plugin_dir_url("/").'/'.str_replace(basename( __FILE__),"",plugin_basename( __FILE__)) .'core/css/'.$file ; + if (@filesize($path)>0) { + $this->add_css($url) ; + } + } + } + } + } + + $name = 'css/css_admin.css' ; + $url = plugin_dir_url("/").'/'.str_replace(basename( $this->path),"",plugin_basename($this->path)) .$name ; + $path = WP_PLUGIN_DIR.'/'.str_replace(basename( $this->path),"",plugin_basename($this->path)) .$name ; + if (file_exists($path)) { + if (@filesize($path)>0) { + $this->add_css($url) ; + } + } + + $url_low = plugin_dir_url("/").'/'.$plugin[0] ."/img/banner-772x250" ; + $path_low = WP_PLUGIN_DIR.'/'.$plugin[0]."/img/banner-772x250" ; + $url_high = plugin_dir_url("/").'/'.$plugin[0]."/img/banner-1544x500" ; + $path_high = WP_PLUGIN_DIR.'/'.$plugin[0]."/img/banner-1544x500" ; + // Add the CSS for the configuration page + ob_start() ; + ?> + .plugin-titleSL h2 { + font-family: "Helvetica Neue",sans-serif; + font-weight: bold; + font-size: 30px; + max-width: 682px; + position: absolute; + left: 30px; + bottom: 20px; + padding: 15px; + margin-bottom: 4px; + color: #ffffff; + background-color: rgba(30, 30, 30, 0.9); + background-image: none; + background-repeat: repeat; + background-attachment: scroll; + background-position: 0% 0%; + background-clip: border-box; + background-origin: padding-box; + background-size: auto auto; + text-shadow: 0px 1px 3px rgba(0, 0, 0, 0.4); + box-shadow: 0px 0px 30px rgba(255, 255, 255, 0.1); + border-top-left-radius: 8px; + border-top-right-radius: 8px; + border-bottom-right-radius: 8px; + border-bottom-left-radius: 8px; + } + + .plugin-titleSL { + position: absolute; + top: 0px; + left: 0px; + width:772px; + height:250px; + background-image: url(); + background-size:772px 250px; + box-shadow: 0px 0px 50px 4px rgba(0, 0, 0, 0.2) inset, 0px -1px 0px rgba(0, 0, 0, 0.1) inset; + z-index:-100; + } + .plugin-contentSL { + margin-bottom:20px; + padding:20px ; + padding-top:270px ; + } + + + .plugin-titleSL { + position: absolute; + top: 0px; + left: 0px; + width:772px; + height:250px; + background-image: url(); + background-size:772px 250px; + box-shadow: 0px 0px 50px 4px rgba(0, 0, 0, 0.2) inset, 0px -1px 0px rgba(0, 0, 0, 0.1) inset; + z-index:-100; + } + .plugin-contentSL { + margin-bottom:20px; + padding:20px ; + padding-top:270px ; + } + + + .plugin-titleSL { + position: absolute; + top: 0px; + left: 0px; + height:110px; + width:772px; + background-image: none; + background-size:772px 110px; + z-index:-100; + } + .plugin-contentSL { + margin-bottom:20px; + padding:20px ; + padding-top:110px ; + } + + + + + @media only screen and (-webkit-min-device-pixel-ratio: 1.5) { + .plugin-titleSL { + background-image: url(); + } + } + + @media only screen and (-webkit-min-device-pixel-ratio: 1.5) { + .plugin-titleSL { + background-image: url(); + } + } + add_inline_css(ob_get_clean()) ; + + } + + /** ==================================================================================================================================================== + * Insert the admin css file which is located in css/css_front.css (you may modify this file in order to customize the rendering) + * This function is not supposed to be called from your plugin. This function is called automatically. + * + * @access private + * @return void + */ + + function css_front() { + $name = 'css/css_front.css' ; + $url = plugin_dir_url("/").'/'.str_replace(basename( $this->path),"",plugin_basename($this->path)) .$name ; + $path = WP_PLUGIN_DIR.'/'.str_replace(basename($this->path),"",plugin_basename($this->path)) .$name ; + if (file_exists($path)) { + if (@filesize($path)>0) { + $this->add_css($url) ; + } + } + } + + /** ==================================================================================================================================================== + * This function displays the configuration page of the core + * + * @access private + * @return void + */ + function sedlex_information() { + global $submenu; + global $blog_id ; + global $SLpluginActivated ; + + if (((is_multisite())&&($blog_id == 1))||(!is_multisite())) { + ob_start() ; + $params = new SLFramework_Parameters ($this->frmk) ; + $params->add_title (__('Log options','SL_framework')) ; + $params->add_param ("debug_level", __('What is the debug level:','SL_framework')) ; + $params->add_comment ("".__('See the debug logs','SL_framework')."") ; + $params->add_comment (__('1=log only the critical errors;','SL_framework')) ; + $params->add_comment (__('2=log only the critical errors and the standard errors;','SL_framework')) ; + $params->add_comment (__('3=log only the critical errors, the standard errors and the warnings;','SL_framework')) ; + $params->add_comment (__('4=log information;','SL_framework')) ; + $params->add_comment (__('5=log verbose;','SL_framework')) ; + + if (is_multisite()) { + $params->add_title (__('Multisite Management','SL_framework')) ; + $params->add_param ("global_allow_translation_by_blogs", __('Do you want to allow sub-blogs to modify the translations of the plugins:','SL_framework')) ; + $params->add_comment (__("If this option is unchecked, the translation tab won't be displayed in the blog administration panel.",'SL_framework')) ; + } + + $params->add_title (__('Location of the SL plugins','SL_framework')) ; + $params->add_param ("global_location_plugin", __('Where do you want to display the SL plugins:','SL_framework')) ; + + echo $params->flush() ; + $paramSave = ob_get_clean() ; + + echo "" ; + } + + //Information about the SL plugins + ?> +
+

+

+
+
+ signature; + ?> +

 

+ $data) { + if (is_plugin_active($url)) { + $all_nb++ ; + } + } + $sl_count = 0 ; + foreach ($SLpluginActivated as $ov) { + $sl_count ++ ; + } +?> +

+

".str_replace(ABSPATH, "", SL_FRAMEWORK_DIR)."")?>

+title(array(__("Plugin name", 'SL_framework'), __("Description", 'SL_framework'))) ; + $ligne=0 ; + foreach ($SLpluginActivated as $i => $url) { + $ligne++ ; + + $plugin_name = explode("/",$url) ; + if (isset($plugin_name[count($plugin_name)-2])) { + $plugin_name = $plugin_name[count($plugin_name)-2] ; + } else { + $plugin_name = "?" ; + } + if ($i != 0) { + $info = pluginSedlex::get_plugins_data(WP_PLUGIN_DIR."/".$url); + ob_start() ; + ?> +

+

|

+ " ; + } + ?> +

", "

+ $info = pluginSedlex::get_plugins_data(WP_PLUGIN_DIR.'/my-plugin/my-plugin.php') will return an array with + * - the folder of the plugin : $info['Dir_Plugin'] + * - the name of the plugin : $info['Plugin_Name'] + * - the tags of the plugin : $info['Plugin_Tag'] + * - the url of the plugin : $info['Plugin_URI'] + * - the description of the plugin : $info['Description'] + * - the name of the author : $info['Author'] + * - the url of the author : $info['Author_URI'] + * - the version number : $info['Version'] + * - the email of the Author : $info['Email'] + * + * @param string $plugin_file path of the plugin main file. If no paramater is provided, the file is the current plugin main file. + * @return array information on Name, Author, Description ... + */ + + static public function get_plugins_data($plugin_file='') { + if ($plugin_file == "") + $plugin_file = $this->path ; + + $plugin_data = implode('', file($plugin_file)); + preg_match("|Plugin Name:(.*)|i", $plugin_data, $plugin_name); + preg_match("|Plugin Tag:(.*)|i", $plugin_data, $plugin_tag); + preg_match("|Plugin URI:(.*)|i", $plugin_data, $plugin_uri); + preg_match("|Description:(.*)|i", $plugin_data, $description); + preg_match("|Author:(.*)|i", $plugin_data, $author_name); + preg_match("|Author URI:(.*)|i", $plugin_data, $author_uri); + preg_match("|Author Email:(.*)|i", $plugin_data, $author_email); + preg_match("|Framework Email:(.*)|i", $plugin_data, $framework_email); + preg_match('|$this->tableSQL = "(.*)"|i', $plugin_data, $plugin_database); + if (preg_match("|Version:(.*)|i", $plugin_data, $version)) { + $version = trim($version[1]); + } else { + $version = ''; + } + + $plugins_allowedtags = array('a' => array('href' => array()),'code' => array(), 'p' => array() ,'ul' => array() ,'li' => array() ,'strong' => array()); + + if (isset($plugin_name[1])) + $plugin_name = wp_kses(trim($plugin_name[1]), $plugins_allowedtags); + else + $plugin_name = "" ; + if (isset($plugin_tag[1])) + $plugin_tag = wp_kses(trim($plugin_tag[1]), $plugins_allowedtags); + else + $plugin_tag = "" ; + if (isset($plugin_uri[1])) + $plugin_uri = wp_kses(trim($plugin_uri[1]), $plugins_allowedtags); + else + $plugin_uri = "" ; + if (isset($description[1])) + $description = wp_kses(trim($description[1]), $plugins_allowedtags); + else + $description = "" ; + if (isset($author_name[1])) + $author = wp_kses(trim($author_name[1]), $plugins_allowedtags); + else + $author = "" ; + if (isset($author_uri[1])) + $author_uri = wp_kses(trim($author_uri[1]), $plugins_allowedtags); + else + $author_uri = "" ; + if (isset($author_email[1])) + $author_email = wp_kses(trim($author_email[1]), $plugins_allowedtags); + else + $author_email = "" ; + if (isset($framework_email[1])) + $framework_email = wp_kses(trim($framework_email[1]), $plugins_allowedtags); + else + $framework_email = "" ; + if (isset($version)) + $version = wp_kses($version, $plugins_allowedtags); + else + $version = "" ; + if (isset($plugin_database[1])) + $database = trim($plugin_database[1]) ; + else + $database = "" ; + + return array('Dir_Plugin'=>basename(dirname($plugin_file)) , 'Plugin_Name' => $plugin_name,'Plugin_Tag' => $plugin_tag, 'Plugin_URI' => $plugin_uri, 'Description' => $description, 'Author' => $author, 'Author_URI' => $author_uri, 'Email' => $author_email, 'Framework_Email' => $framework_email, 'Version' => $version, 'Database' => $database); + } + + /** ==================================================================================================================================================== + * Ensure that the needed folders are writable by the webserver. + * Will check usual folders and files. + * You may add this in your configuration page $this->check_folder_rights( array(array($theFolderToCheck, "rw")) ) ; + * If not a error msg is printed + * + * @param array $folders list of array with a first element (the complete path of the folder to check) and a second element (the needed rights "r", "w" [or a combination of those]) + * @return void + */ + + public function check_folder_rights ($folders) { + $f = array(array(WP_CONTENT_DIR.'/sedlex/',"rw"), + array(WP_PLUGIN_DIR.'/'.str_replace(basename( __FILE__),"",plugin_basename( __FILE__)) .'readme.txt',"rw"), + array(WP_PLUGIN_DIR.'/'.str_replace(basename( __FILE__),"",plugin_basename( __FILE__)) .'css/',"r"), + array(WP_PLUGIN_DIR.'/'.str_replace(basename( __FILE__),"",plugin_basename( __FILE__)) .'js/',"r"), + array(WP_PLUGIN_DIR.'/'.str_replace(basename( __FILE__),"",plugin_basename( __FILE__)) .'lang/',"rw"), + array(WP_PLUGIN_DIR.'/'.str_replace(basename( __FILE__),"",plugin_basename( __FILE__)) .'core/',"r"), + array(WP_PLUGIN_DIR.'/'.str_replace(basename( __FILE__),"",plugin_basename( __FILE__)) .'core/img/',"r"), + array(WP_PLUGIN_DIR.'/'.str_replace(basename( __FILE__),"",plugin_basename( __FILE__)) .'core/templates/',"r"), + array(WP_PLUGIN_DIR.'/'.str_replace(basename( __FILE__),"",plugin_basename( __FILE__)) .'core/lang/',"rw"), + array(WP_PLUGIN_DIR.'/'.str_replace(basename( __FILE__),"",plugin_basename( __FILE__)) .'core/js/',"r"), + array(WP_PLUGIN_DIR.'/'.str_replace(basename( __FILE__),"",plugin_basename( __FILE__)) .'core/css/',"r")) ; + $folders = array_merge($folders, $f) ; + + $result = "" ; + foreach ($folders as $f ) { + if ( (is_dir($f[0])) || (@is_file($f[0])) ) { + $readable = SLFramework_Utils::is_readable($f[0]) ; + $writable = SLFramework_Utils::is_writable($f[0]) ; + + @chmod($f[0], 0755) ; + + $pb = false ; + if ((strpos($f[1], "r")!==false) && (!$readable)) { + $pb = true ; + } + if ((strpos($f[1], "w")!==false) && (!$writable)) { + $pb = true ; + } + + if ($pb) { + if (is_dir($f[0])) + $result .= "

".sprintf(__('The folder %s is not %s !','SL_framework'), "".$f[0]."", "".$f[1]."")."

" ; + if (@is_file($f[0])) + $result .= "

".sprintf(__('The file %s is not %s !','SL_framework'), "".$f[0]."", "".$f[1]."")."

" ; + } + } else { + // We check if the last have an extension + if (strpos(basename($f[0]) , ".")===false) { + // It is a folder + if (!@mkdir($f[0],0755,true)) { + $result .= "

".sprintf(__('The folder %s does not exists and cannot be created !','SL_framework'), "".$f[0]."")."

" ; + } + } else { + + $foldtemp = str_replace(basename($f[0]), "", str_replace(basename($f[0])."/","", $f[0])) ; + // We create the sub folders + if ((!is_dir($foldtemp))&&(!@mkdir($foldtemp,0755,true))) { + $result .= "

".sprintf(__('The folder %s does not exists and cannot be created !','SL_framework'), "".$foldtemp."")."

" ; + } else { + // We touch the file + @chmod($foldtemp, 0755) ; + if (@file_put_contents($f[0], '')===false) { + $result .= "

".sprintf(__('The file %s does not exists and cannot be created !','SL_framework'), "".$f[0]."")."

" ; + } + } + } + } + } + if ($result != "") { + echo "

".__('There are some issues with folders rights. Please corret them as soon as possible as they could induce bugs and instabilities.','SL_framework')."

".__('Please see below:','SL_framework')."

".$result."
" ; + } + } + + /** ==================================================================================================================================================== + * Get the displayed content + * + * @return void + */ + + function the_content_SL($content) { + global $post ; + // If it is the loop and an the_except is called, we leave + if (!is_single()) { + // If page + if (is_page()) { + if (method_exists($this,'_modify_content')) { + return $this->_modify_content($content, 'page', false) ; + } + return $content; + // else + } else { + // si excerpt + if ( (method_exists($this,'_modify_content')) && (!$this->excerpt_called_SL)) { + return $this->_modify_content($content, get_post_type($post->ID), true) ; + } + return $content ; + } + } else { + + if ( (method_exists($this,'_modify_content')) && (!$this->excerpt_called_SL)) { + return $this->_modify_content($content, get_post_type($post->ID), false) ; + } + return $content ; + } + } + + /** ==================================================================================================================================================== + * Get the excerpt content + * + * @return void + */ + function the_excerpt_ante_SL($content) { + $this->excerpt_called_SL=true ; + return $content ; + } + + function the_excerpt_SL($content) { + global $post ; + $this->excerpt_called_SL = false ; + + if ( (method_exists($this,'_modify_content')) && (!$this->excerpt_called_SL)) { + return $this->_modify_content($content, get_post_type($post->ID), true) ; + } + + return $content ; + } + } + + /** =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* + * This PHP class has only for purpose to fake a plugin class and allow parameters administration for the framework. + * + */ + class coreSLframework extends pluginSedLex { + /** ==================================================================================================================================================== + * Plugin initialization + * + * @return void + */ + static $instance = false; + + /**==================================================================================================================================================== + * Constructor + * + * @return void + */ + function coreSLframework() { + $this->path = __FILE__ ; + $this->pluginID = get_class() ; + } + + + /** ==================================================================================================================================================== + * Define the default option values of the framework + * + * @param string $option the name of the option + * @return variant of the option + */ + public function get_default_option($option) { + switch ($option) { + // Alternative default return values (Please modify) + case 'debug_level' : return 3 ; break ; + case 'global_allow_translation_by_blogs' : return true ; break ; + case 'global_location_plugin' : return array( array("*".__("Standard", 'SL_framework'), "std"), + array(__("under Plugins", 'SL_framework'), "plugins"), + array(__("under Tools", 'SL_framework'), "tools"), + array(__("under Settings", 'SL_framework'), "settings") + ) ; break ; + } + return null ; + } + } + +} + + + +?> \ No newline at end of file diff --git a/core.nfo b/core.nfo new file mode 100644 index 0000000..f16cda9 --- /dev/null +++ b/core.nfo @@ -0,0 +1 @@ +5b5e6076511a221de1da7a502d5e06093640a7d8#20140729093932 \ No newline at end of file diff --git a/core.php b/core.php new file mode 100644 index 0000000..88bb3d6 --- /dev/null +++ b/core.php @@ -0,0 +1,61 @@ + \ No newline at end of file diff --git a/core/admin_table.class.php b/core/admin_table.class.php new file mode 100644 index 0000000..71b3ea5 --- /dev/null +++ b/core/admin_table.class.php @@ -0,0 +1,390 @@ +id = $SLframework_id_table ; + $this->title = array() ; + $this->order = $order ; + $this->nbLigneTotal = $nb_all_Items ; + $this->nbLignePerPage = $nb_max_per_page ; + $this->hasFooter = true ; + $this->search = $search ; + $this->searchWords = "" ; + $this->content = array() ; + } + + /** ==================================================================================================================================================== + * Set the titles of the columns + * + * @param array $array it is an array of string which is of the size of the number of columns. Each string is the title for a different column + * @return void + */ + + function title($array) { + $this->title = $array ; + } + + /** ==================================================================================================================================================== + * Get the current page of the table. + * This is relevant if the number of your items is greater than the number of lines + * + * @return integer the page number + */ + function current_page() { + if (isset($_GET['paged_'.$this->id])) { + $page_cur = preg_replace("/[^0-9]/", "", $_GET['paged_'.$this->id]) ; + } else { + $page_cur = 1 ; + } + return $page_cur ; + } + + /** ==================================================================================================================================================== + * Set the number of items (all). + * + * @return void + */ + function set_nb_all_Items($nb) { + $this->nbLigneTotal = $nb ; + } + + /** ==================================================================================================================================================== + * Get the currentfilter of the table. + * + * @return string the filter + */ + function current_filter() { + if (isset($_GET['filter_'.$this->id])) { + $page_filter = trim(preg_replace("#(\xBB|\xAB|!|\xA1|%|,|:|;|\(|\)|\&|\"|\'|\.|-|\/|\?|\\\)#", " ", $_GET['filter_'.$this->id])) ; + while ($page_filter != str_replace(" ", " ", $page_filter)) { + $page_filter = str_replace(" ", " ", $page_filter) ; + } + } else { + $page_filter = "" ; + } + return $page_filter ; + } + /** ==================================================================================================================================================== + * Get the current column order of the table. + * + * @return integer the column number + */ + function current_ordercolumn() { + if (isset($_GET['ordercol_'.$this->id])) { + $col_cur = preg_replace("/[^0-9]/", "", $_GET['ordercol_'.$this->id]) ; + } else { + $col_cur = 1 ; + } + return $col_cur ; + } + + /** ==================================================================================================================================================== + * Get the current column direction of the table. + * + * @return string the column direction "ASC" or "DESC" + */ + function current_orderdir() { + if (isset($_GET['orderdir_'.$this->id])) { + $dir_cur = $_GET['orderdir_'.$this->id] ; + if ($dir_cur != "DESC") { + $dir_cur = "ASC" ; + } + } else { + $dir_cur = "ASC" ; + } + return $dir_cur ; + } + + /** ==================================================================================================================================================== + * Remove the showed title at the footer of the table + * By default, titles of the columns are displayed at the top of the table and at its footer. + * + * @return void + */ + function removeFooter() { + $this->hasFooter = false ; + } + + /** ==================================================================================================================================================== + * Add a line in your table + * For instance + * $table = new SLFramework_Table() ;
$table->title(array("Col1", "Col2", "Col3") ) ;
$cel1 = new adminCell("Cel1-1") ;
$cel2 = new adminCell("Cel1-2") ;
$cel3 = new adminCell("Cel1-3") ;
$table->add_line(array($cel1, $cel2, $cel3), '1') ;
echo $table->flush() ;
+ * This code will display a table with a unique line + * + * @param array $array it is an array of adminCell object. The length of this array is the same size of the number of your columns + * @param id $id it is the id of this line. It is useful when you add an action on a cell + * @see adminCell::adminCell + * @see adminCell:add_action + * @return void + */ + function add_line($array, $id) { + $n = 1 ; + foreach ($array as $a) { + $a->idLigne= $id ; + $a->idCol = $n ; + $n++ ; + } + $this->content[] = $array ; + } + + /** ==================================================================================================================================================== + * Return the table HTML code. You just have to echo it + * + * @return string the HTML code of the table + */ + function flush() { + ob_start() ; + $get = $_GET; + + // + // Est-ce que on affiche la zone de recherche + // + if ($this->search) { + + + $filter = $this->current_filter() ; + +?>
+
+
+ $v) { + if (($k!="filter_".$this->id)&&($k!="paged_".$this->id)) { +?> + + id."' value=\"".$filter."\" size='30'>") ?> +
+
+
+
+nbLigneTotal>count($this->content)) { + $page_cur = $this->current_page() ; + + $page_tot = ceil($this->nbLigneTotal/$this->nbLignePerPage) ; + + $page_inf = max(1,$page_cur-1) ; + $page_sup= min($page_tot,$page_cur+1) ; + +?>
+ +
+ + + + +title as $name) { + if ($this->order) { + if ($this->current_ordercolumn()==$i_col) { + $name .= " " ; + if ($this->current_orderdir()=="DESC") { + $name .= "id => 'ASC', 'ordercol_'.$this->id => $i_col ) )."'>" ; + $name .= "" ; + } else { + $name .= "" ; + $name .= "id => 'DESC', 'ordercol_'.$this->id => $i_col ) )."'>" ; + } + } else { + $name .= " " ; + $name .= "id => 'ASC', 'ordercol_'.$this->id => $i_col ) )."'>" ; + $name .= "id => 'DESC', 'ordercol_'.$this->id => $i_col ) )."'>" ; + } + } + $i_col++ ; +?> + + + +hasFooter) { +?> + + +title as $name) { +?> + + + + +content as $line) { + $ligne++ ; + // on recupere le premier id de la ligne et on considere que c'est le meme partout + $id = $line[0]->idLigne ; +?> +flush() ; + } +?> + +
+content = $content ; + $this->action = array() ; + } + + /** ==================================================================================================================================================== + * To add a javascript action on this cell. + * An action a small link at the bottom of the cell which call a javascript action when it is clicked + * For instance : + * $cel1 = new adminCell("content cell") ;
$cel1->add_action("Delete", "deleteFunction") ;
+ *with the following javascript code in the js/js_admin.js file to call a PHP function (deletePHP) in AJAX + *function deleteFunction (element) {
     // Get the id of the line
     var idLine = element.getAttribute("id");
     // Prepare the argument for the AJAX call
     var arguments = {
           action: 'deletePHP',
           id : idLine
     }
     //POST the data
     jQuery.post(ajaxurl, arguments, function(response) {
           // The call is finished
     });
}
+ * and do not forget to add a add_action('wp_ajax_deletePHP', array($this,'deletePHP')); in the _init function of your plugin + * If the function is only a string with no parantehsis (i.e. the_function), thus the id of the line will be passed in argument + * If the function is a function name with arguments (i.e. the_function(arg1, arg2)), thus this function will be called directly + * + * @param string $name the text of the link to be displayed + * @param string $javascript_function the name of the function to be called when the link is clicked + * @return adminCell the cell object + */ + + function add_action($name, $javascript_function) { + $this->action[] = array($name, $javascript_function) ; + } + + /** ==================================================================================================================================================== + * Print the cell HTML code. + * This function is not to be called from the plugin. It is called in the table class + * + * @access private + * @return void + */ + function flush() { + +?> + content ?> +action)) { +?>
+action as $l) { + $num ++ ; + if (strpos($l[1],"(")>0) { + $l[1] = str_replace('"', '\'', $l[1]) ; +?> img/ajax-loader.gif' style='display:none;'>action)) { echo " |" ; }?> + img/ajax-loader.gif' style='display:none;'>action)) { echo " |" ; }?> +
+ + \ No newline at end of file diff --git a/core/box.class.php b/core/box.class.php new file mode 100644 index 0000000..f805058 --- /dev/null +++ b/core/box.class.php @@ -0,0 +1,56 @@ +title = $title ; + $this->content = $content ; + } + + + /** ==================================================================================================================================================== + * Print the box HTML code. + * + * @return void + */ + function flush() { + ob_start(); + ?> +
+
+
+

title ; ?>

+
+ content ; + ?> +
+
+ +
+
+ \ No newline at end of file diff --git a/core/browser.class.php b/core/browser.class.php new file mode 100644 index 0000000..a641290 --- /dev/null +++ b/core/browser.class.php @@ -0,0 +1,441 @@ +browser_name = 'Other'; + $this->browser_version = "?"; + $this->platform_name = 'Other'; + $this->platform_version = '?'; + $this->useragent = $agent; + $this->mobile = false; + $this->robot = false; + + /** + * Determine if the user is using a BlackBerry + */ + if ( stripos($agent,'blackberry') !== false ) { + $aresult = explode("/",stristr($agent,"BlackBerry")); + $aversion = explode(' ',$aresult[1]); + $this->browser_version = $aversion[0]; + $this->browser_name = 'BlackBerry'; + $this->mobile = true; + $this->robot = false; + + /** + * Determine if the user is the GoogleBot or not + */ + } else if( stripos($agent,'googlebot') !== false ) { + $aresult = explode('/',stristr($agent,'googlebot')); + $aversion = explode(' ',$aresult[1]); + $this->browser_version = str_replace(';','',$aversion[0]); + $this->browser_name = 'GoogleBot'; + $this->mobile = false; + $this->robot = true; + + /** + * Determine if the browser is the MSNBot or not + */ + } else if( stripos($agent,"msnbot") !== false ) { + $aresult = explode("/",stristr($agent,"msnbot")); + $aversion = explode(" ",$aresult[1]); + $this->browser_version = str_replace(";","",$aversion[0]); + $this->browser_name = 'MSNBot'; + $this->mobile = false; + $this->robot = true; + + /** + * Determine if the browser is the W3C Validator or not + */ + } else if( stripos($agent,'W3C-checklink') !== false ) { + $aresult = explode('/',stristr($agent,'W3C-checklink')); + $aversion = explode(' ',$aresult[1]); + $this->browser_version = $aversion[0]; + $this->browser_name = "W3C_CkeckLink"; + $this->mobile = false; + $this->robot = false; + } else if( stripos($agent,'W3C_Validator') !== false ) { + // Some of the Validator versions do not delineate w/ a slash - add it back in + $ua = str_replace("W3C_Validator ", "W3C_Validator/", $agent); + $aresult = explode('/',stristr($ua,'W3C_Validator')); + $aversion = explode(' ',$aresult[1]); + $this->browser_version = $aversion[0]; + $this->browser_name = 'W3C_Validator' ; + $this->mobile = false; + $this->robot = false; + + /** + * Determine if the browser is the Yahoo! Slurp Robot or not + */ + } else if( stripos($agent,'slurp') !== false ) { + $aresult = explode('/',stristr($agent,'Slurp')); + $aversion = explode(' ',$aresult[1]); + $this->browser_version = $aversion[0]; + $this->browser_name = "YahooBot"; + $this->robot = true ; + $this->mobile = false ; + + /** + * Determine if the browser is Opera or not (last updated 1.7) + * To be tested prior to MSIE and Mozilla because its header embedded both string + */ + } else if( stripos($agent,'opera mini') !== false ) { + $resultant = stristr($agent, 'opera mini'); + if( preg_match('/\//',$resultant) ) { + $aresult = explode('/',$resultant); + $aversion = explode(' ',$aresult[1]); + $this->browser_version = ($aversion[0]); + } else { + $aversion = explode(' ',stristr($resultant,'opera mini')); + $this->browser_version = ($aversion[1]); + } + $this->browser_name = 'Opera Mini'; + $this->mobile = true ; + } else if( stripos($agent,'opera') !== false ) { + $resultant = stristr($agent, 'opera'); + if( preg_match('/Version\/(10.*)$/',$resultant,$matches) ) { + $this->browser_version = ($matches[1]); + } else if( preg_match('/\//',$resultant) ) { + $aresult = explode('/',str_replace("("," ",$resultant)); + $aversion = explode(' ',$aresult[1]); + $this->browser_version = ($aversion[0]); + } else { + $aversion = explode(' ',stristr($resultant,'opera')); + $this->browser_version = (isset($aversion[1])?$aversion[1]:""); + } + $this->browser_name = 'Opera' ; + + /** + * Determine if the browser is Internet Explorer or not + */ + // Test for v1 - v1.5 IE + } else if( stripos($agent,'microsoft internet explorer') !== false ) { + $this->browser_name = "Internet Explorer"; + $this->browser_version = '1.0'; + $aresult = stristr($agent, '/'); + if( preg_match('/308|425|426|474|0b1/i', $aresult) ) { + $this->browser_version = '1.5'; + } + // Test for versions > 1.5 + } else if( stripos($agent,'msie') !== false ) { + // Test IE8 + if ( ( stripos($agent,'trident/4.0') !== false ) && ( stripos($agent,'MSIE 8') === false ) ) { + $this->browser_name = ( 'Internet Explorer' ); + $this->browser_version = "8"; + // Test IE9 + } else if ( ( stripos($agent,'trident/5.0') !== false ) && ( stripos($agent,'MSIE 9') === false ) ) { + $this->browser_name = ( 'Internet Explorer' ); + $this->browser_version = "9"; + // See if the browser is the odd MSN Explorer + } else if( stripos($agent,'msnb') !== false ) { + $aresult = explode(' ',stristr(str_replace(';','; ',$agent),'MSN')); + $this->browser_name = ( "MSN Browser" ); + $this->browser_version = (str_replace(array('(',')',';'),'',$aresult[1])); + } else { + $aresult = explode(' ',stristr(str_replace(';','; ',$agent),'msie')); + $this->browser_name = ( 'Internet Explorer' ); + $this->browser_version = (str_replace(array('(',')',';'),'',$aresult[1])); + } + // Test for Pocket IE + } else if( stripos($agent,'mspie') !== false || stripos($agent,'pocket') !== false ) { + $aresult = explode(' ',stristr($agent,'mspie')); + $this->browser_name = ( 'Pocket Internet Explorer' ); + $this->mobile = true ; + if ( stripos($agent,'mspie') !== false ) { + $this->browser_version = ($aresult[1]); + } else { + $aversion = explode('/',$agent); + $this->browser_version = ($aversion[1]); + } + + /** + * Determine if the browser is Chrome or not + * (should be test before safari to avoid false positive) + */ + } else if( stripos($agent,'Chrome') !== false ) { + $aresult = explode('/',stristr($agent,'Chrome')); + $aversion = explode(' ',$aresult[1]); + $this->browser_version = ($aversion[0]); + $this->browser_name = ('Chrome'); + + /** + * Determine if the browser is Galeon or not + */ + } else if( stripos($agent,'galeon') !== false ) { + $aresult = explode(' ',stristr($agent,'galeon')); + $aversion = explode('/',$aresult[0]); + $this->browser_version = ($aversion[1]); + $this->browser_name = ('Galeon'); + + /** + * Determine if the browser is Konqueror or not + */ + } else if( stripos($agent,'Konqueror') !== false ) { + $aresult = explode(' ',stristr($agent,'Konqueror')); + $aversion = explode('/',$aresult[0]); + $this->browser_version = ($aversion[1]); + $this->browser_name = ('Konqueror'); + + /** + * Determine if the browser is iCab or not + */ + } else if( stripos($agent,'icab') !== false ) { + $aversion = explode(' ',stristr(str_replace('/',' ',$agent),'icab')); + $this->browser_version = ($aversion[1]); + $this->browser_name = ("iCab"); + + /** + * Determine if the browser is Netscape Navigator 9+ or not + */ + } else if( stripos($agent,'Firefox') !== false && preg_match('/Navigator\/([^ ]*)/i',$agent,$matches) ) { + $this->browser_version = ($matches[1]); + $this->browser_name = ('Netscape Navigator'); + } else if( stripos($agent,'Firefox') === false && preg_match('/Netscape6?\/([^ ]*)/i',$agent,$matches) ) { + $this->browser_version = ($matches[1]); + $this->browser_name = ('Netscape Navigator'); + + /** + * Determine if the browser is Nokia or not + */ + } else if( preg_match("/Nokia([^\/]+)\/([^ SP]+)/i",$agent,$matches) ) { + $this->browser_version = ($matches[2]); + if( stripos($agent,'Series60') !== false || strpos($agent,'S60') !== false ) { + $this->browser_name = ('Nokia S60 OSS Browser'); + } else { + $this->browser_name = ('Nokia Browser'); + } + $this->mobile = true ; + + /** + * Determine if the browser is Android or not + */ + } else if( stripos($agent,'Android') !== false ) { + $aresult = explode('/',stristr($agent,'Version')); + if( isset($aresult[1]) ) { + $aversion = explode(' ',$aresult[1]); + $this->browser_version = ($aversion[0]); + } else { + $this->browser_version = ""; + } + $this->mobile = true ; + $this->browser_name = ("Android Browser"); + + /** + * Determine if the browser is Firefox or not + */ + } else if ( preg_match("/Firefox[\/ \(]([^ ;\)]+)/i",$agent,$matches) ) { + $this->browser_version = ($matches[1]); + $this->browser_name = ('Firefox'); + } else if ( preg_match("/Firefox$/i",$agent,$matches) ) { + $this->browser_version = (""); + $this->browser_name = ("Firefox"); + + /** + * Determine if the browser is Safari or not + */ + } else if( stripos($agent,'Safari') !== false && stripos($agent,'iPhone') === false && stripos($agent,'iPod') === false ) { + $aresult = explode('/',stristr($agent,'Version')); + if( isset($aresult[1]) ) { + $aversion = explode(' ',$aresult[1]); + $this->browser_version = ($aversion[0]); + } else { + $this->browser_version = ("?"); + } + $this->browser_name = ('Safari'); + + /** + * Determine if the browser is iPhone or not + */ + } else if( stripos($agent,'iPhone') !== false ) { + $aresult = explode('/',stristr($agent,'Version')); + if( isset($aresult[1]) ) { + $aversion = explode(' ',$aresult[1]); + $this->browser_version = ($aversion[0]); + } else { + $this->browser_version = ""; + } + $this->mobile = true ; + $this->browser_name = ('Safari'); + + /** + * Determine if the browser is iPod or not + */ + } else if( stripos($agent,'iPad') !== false ) { + $aresult = explode('/',stristr($agent,'Version')); + if( isset($aresult[1]) ) { + $aversion = explode(' ',$aresult[1]); + $this->browser_version = ($aversion[0]); + } else { + $this->browser_version = (""); + } + $this->mobile = true ; + $this->browser_name = ("Safari"); + + /** + * Determine if the browser is iPod or not + */ + } else if( stripos($agent,'iPod') !== false ) { + $aresult = explode('/',stristr($agent,'Version')); + if( isset($aresult[1]) ) { + $aversion = explode(' ',$aresult[1]); + $this->browser_version = ($aversion[0]); + } else { + $this->browser_version = ""; + } + $this->mobile = true ; + $this->browser_name = ("Safari"); + + /** + * Determine if the browser is Mozilla or not + */ + } else if( stripos($agent,'mozilla') !== false && preg_match('/rv:[0-9].[0-9][a-b]?/i',$agent) && stripos($agent,'netscape') === false) { + $aversion = explode(' ',stristr($agent,'rv:')); + preg_match('/rv:[0-9].[0-9][a-b]?/i',$agent,$aversion); + $this->browser_version = (str_replace('rv:','',$aversion[0])); + $this->browser_name = ('Mozilla'); + } else if( stripos($agent,'mozilla') !== false && preg_match('/rv:[0-9]\.[0-9]/i',$agent) && stripos($agent,'netscape') === false ) { + $aversion = explode('',stristr($agent,'rv:')); + $this->browser_version = (str_replace('rv:','',$aversion[0])); + $this->browser_name = ('Mozilla'); + } else if( stripos($agent,'mozilla') !== false && preg_match('/mozilla\/([^ ]*)/i',$agent,$matches) && stripos($agent,'netscape') === false ) { + $this->browser_version = ($matches[1]); + $this->browser_name = ('Mozilla'); + } + + /** + * Determine the user's platform + */ + + if( stripos($agent, 'ipad') !== false ) { + $this->platform_name = 'iPad'; + if( preg_match("/iPhone OS ([^; ]*)[; ]/i",$agent,$matches) ) { + $this->platform_version = str_replace("_", ".", $matches[1]); + } else if( preg_match("/CPU OS ([^; ]*)[; ]/i",$agent,$matches) ) { + $this->platform_version = str_replace("_", ".", $matches[1]); + } + } else if( stripos($agent, 'ipod') !== false ) { + $this->platform_name = 'iPod'; + if( preg_match("/iPhone OS ([^; ]*)[; ]/i",$agent,$matches) ) { + $this->platform_version = str_replace("_", ".", $matches[1]); + } else if( preg_match("/CPU OS ([^; ]*)[; ]/i",$agent,$matches) ) { + $this->platform_version = str_replace("_", ".", $matches[1]); + } + } else if( stripos($agent, 'iphone') !== false ) { + $this->platform_name = 'iPhone'; + if( preg_match("/iPhone OS ([^; ]*)[; ]/i",$agent,$matches) ) { + $this->platform_version = str_replace("_", ".", $matches[1]); + } else if( preg_match("/CPU OS ([^; ]*)[; ]/i",$agent,$matches) ) { + $this->platform_version = str_replace("_", ".", $matches[1]); + } + } else if( stripos($agent, 'mac') !== false ) { + $this->platform_name = 'Macintosh'; + if( preg_match("/Mac OS X ([^; \)]*)[; \)]/i",$agent,$matches) ) { + $this->platform_version = str_replace("_", ".", $matches[1]); + } + } else if( stripos($agent, 'android') !== false ) { + $this->platform_name = 'Android'; + if( preg_match("/Android ([^ ;]*);/i",$agent,$matches) ) { + $this->platform_version = $matches[1]; + } + } else if( stripos($agent, 'nokia') !== false ) { + $this->platform_name = 'Nokia'; + } else if( stripos($agent, 'blackBerry') !== false ) { + $this->platform_name = 'Blackberry'; + } else if( stripos($agent,'freebsd') !== false ) { + $this->platform_name = 'FreeBSD'; + } else if( stripos($agent,'openbsd') !== false ) { + $this->platform_name = 'OpenBSD'; + } else if( stripos($agent,'netbsd') !== false ) { + $this->platform_name = 'NetBSD'; + } else if( stripos($agent, 'opensolaris') !== false ) { + $this->platform_name = 'OpenSolaris'; + } else if( stripos($agent, 'sunos') !== false ) { + $this->platform_name = 'SunOS'; + } else if( stripos($agent, 'os\/2') !== false ) { + $this->platform_name = 'OS2' ; + } else if( stripos($agent, 'beos') !== false ) { + $this->platform_name = 'BeOS' ; + } else if( stripos($agent,'mspie') !== false || stripos($agent,'pocket') !== false ) { + $this->platform_name = 'Windows'; + $this->platform_version = 'ME' ; + } else if( stripos($agent, 'win') !== false ) { + $this->platform_name = 'Windows'; + if (stripos($agent, 'win16') !== false ) { + } else if ( (stripos($agent, 'windows 95') !== false )||(stripos($agent, 'windows_95') !== false )||(stripos($agent, 'win95') !== false ) ) { + $this->platform_version = '95'; + } else if ( (stripos($agent, 'windows 98') !== false )||(stripos($agent, 'win98') !== false ) ) { + $this->platform_version = '98'; + } else if ( (stripos($agent, 'windows nt 5.0') !== false )||(stripos($agent, 'windows 2000') !== false ) ) { + $this->platform_version = '2000'; + } else if ( (stripos($agent, 'windows nt 5.1') !== false )||(stripos($agent, 'windows xp') !== false ) ) { + $this->platform_version = 'XP'; + } else if (stripos($agent, 'windows nt 5.2') !== false ) { + $this->platform_version = 'Server 2003' ; + } else if (stripos($agent, 'windows nt 6.0') !== false ) { + $this->platform_version = 'Vista' ; + } else if (stripos($agent, 'windows nt 6.1') !== false ) { + $this->platform_version = '7' ; + } else if (stripos($agent, 'windows nt 6.2') !== false ) { + $this->platform_version = '8' ; + } else if ( (stripos($agent, 'windows nt 4.0') !== false )||(stripos($agent, 'winnt4.0') !== false )||(stripos($agent, 'winnt') !== false )||(stripos($agent, 'windows nt') !== false ) ) { + $this->platform_version = 'NT 4.0' ; + } + } else if (( stripos($agent, 'linux') !== false )||( stripos($agent, 'X11') !== false )) { + $this->platform_name = 'Linux'; + } else { + $this->platform_name = 'Other'; + } + } + + /** ==================================================================================================================================================== + * Get the browser name + * + * @return string The browser name + */ + function getBrowserName() { + return $this->browser_name ; + } + /** ==================================================================================================================================================== + * Get the browser version + * + * @return string The browser version + */ + function getBrowserVersion() { + return $this->browser_version ; + } + /** ==================================================================================================================================================== + * Get the platform name + * + * @return string The platform name + */ + function getPlatformName() { + return $this->platform_name ; + } + /** ==================================================================================================================================================== + * Get the platform version + * + * @return string The platform version + */ + function getPlatformVersion() { + return $this->platform_version ; + } + } +} + + +?> \ No newline at end of file diff --git a/core/css/diff_admin.css b/core/css/diff_admin.css new file mode 100644 index 0000000..6231605 --- /dev/null +++ b/core/css/diff_admin.css @@ -0,0 +1,53 @@ +/* +VersionDiffCss : 1.0 +*/ + +.numbering li.numbering_li { + font-size:1em; + line-height:1em ; + color:#222222 ; + margin: 0px ; + padding: 0px ; + background-image:none ; +} + +.numbering li.numbering_li:last-child { + font-size:1em; + line-height:1em ; + color:#222222 ; + margin: 0px ; + padding: 0px ; + background-image:none ; +} + +.diff_result pre { + font-size: 1em; + line-height: 13px; + margin: 0; + padding: 0; +} + +.diff_del { + background-color:#D19275 ; + color:#8E2323 ; + text-decoration:line-through; +} + +.diff_ins { + background-color:#A2CD5A ; + color:#2F4F2F ; +} + +.diff_result { + border-style:solid; + border-width:1px; + border-color:#CCCCCC ; + margin : 20px ; + padding : 20px ; + font-family: "Courier New", "Courier", "Lucida Console", "Consolas" ; +} + +.diff_hr { + border: 1px solid #AAAAAA; + width: 80%; +} \ No newline at end of file diff --git a/core/css/msgbox_admin.css b/core/css/msgbox_admin.css new file mode 100644 index 0000000..39ce211 --- /dev/null +++ b/core/css/msgbox_admin.css @@ -0,0 +1,27 @@ +.infoSedLex, .successSedLex, .warningSedLex, .errorSedLex { +border: 1px solid; +margin: 3px 3px; +padding:10px 5px 10px 50px; +background-repeat: no-repeat; +background-position: 10px center; +} +.infoSedLex { +color: #00529B; +background-color: #BDE5F8; +background-image: url('../img/info.png'); +} +.successSedLex { +color: #4F8A10; +background-color: #DFF2BF; +background-image:url('../img/success.png'); +} +.warningSedLex { +color: #9F6000; +background-color: #FEEFB3; +background-image: url('../img/warning.png'); +} +.errorSedLex { +color: #D8000C; +background-color: #FFBABA; +background-image: url('../img/error.png'); +} \ No newline at end of file diff --git a/core/css/otherplugins_admin.css b/core/css/otherplugins_admin.css new file mode 100644 index 0000000..4ec310b --- /dev/null +++ b/core/css/otherplugins_admin.css @@ -0,0 +1,24 @@ +div.screenshot_wordpress { + border: 1px solid #999999; + margin: 3px 3px; + padding:10px 10px 10px 10px; + position:relative; + float:left ; +} + +div.screenshot_wordpress .screenshot { + /* Code standard */ + max-width: 100px; + max-height: 100px; + + /* Code spécial IE */ + _width: expression((this.offsetWidth>=this.offsetHeight) ? + Math.min(parseInt(this.offsetWidth), 100 ) : true); + _height: expression((this.offsetHeight>this.offsetWidth) ? + Math.min(parseInt(this.offsetHeight), 100 ) : true); +} + +div.description_wordpress ul { + list-style: disc; + padding-left: 2em; +} \ No newline at end of file diff --git a/core/css/parameters_admin.css b/core/css/parameters_admin.css new file mode 100644 index 0000000..f22aa91 --- /dev/null +++ b/core/css/parameters_admin.css @@ -0,0 +1,14 @@ +.paramLine { + padding-left:20px; + padding-top:5px; + padding-bottom:0px; + line-height:12px; +} + +.paramComment { + padding-left:50px; + padding-top:5px; + padding-bottom:0px; + line-height:12px; + color:#A4A4A4; +} \ No newline at end of file diff --git a/core/css/popup_admin.css b/core/css/popup_admin.css new file mode 100644 index 0000000..6a20435 --- /dev/null +++ b/core/css/popup_admin.css @@ -0,0 +1,74 @@ +#backgroundPopup{ + display:none; + position:fixed; + _position:absolute; /* hack for internet explorer 6*/ + height:100%; + width:100%; + top:0; + left:0; + background:#000000; + border:1px solid #cecece; + z-index:1000; +} + +#popupForm{ + display:none; + position:fixed; + top:50px ; + bottom:50px ; + left:50px; + right:50px; + background:#DDDDDD; + padding:10px; + z-index:1001; +} + +#innerPopupForm { + position:absolute; + top:34px ; + bottom:5px ; + left:5px; + right:5px; + z-index:1002; + background:#FFFFFF; + overflow:auto ; + padding:10px; +} + + +#titlePopupForm { + position:absolute; + top:0px ; + left:0px ; + right:31px; + height:32px ; + background:#999999; + background-image:url('../img/title_popup.png'); + background-repeat:repeat-x; + z-index:1002; + padding:0px ; + padding-left:20px ; +} + +#titlePopupForm p { + font-size:15px ; + padding:0px ; + margin:0px ; + line-height:31px ; +} + + +#popupContentArea { + text-align:left; +} + +#popupFormClose{ + right:0px; + top:0px; + height:32px ; + width:31px ; + position:absolute; + display:block; + background:#999999; + +} \ No newline at end of file diff --git a/core/css/post_admin.css b/core/css/post_admin.css new file mode 100644 index 0000000..1b6c8d4 --- /dev/null +++ b/core/css/post_admin.css @@ -0,0 +1,62 @@ +.adminPost {font:12px/1.3em Helvetica, Arial, sans-serif;} + +.adminPost h1, .adminPost h2, .adminPost h3, .adminPost h4, .adminPost h5, .adminPost h6 { margin:1em 0 0.5em; } +.adminPost h1 {font-size: 2em ; line-height: 1.3em ;} +.adminPost h2 {font-size: 1.8em; line-height: 1.3em ;} +.adminPost h3 {font-size: 1.6em; line-height: 1.1em ;} +.adminPost h4 {font-size: 1.2em; line-height: 0.9em ;} +.adminPost h5 {font-size: 1em; } +.adminPost h6 {font-size: 0.8em; } + +.adminPost p { margin-bottom: 0.7em; font-size: 12px; } + +.adminPost a:link, .adminPost a:visited { color: #000; text-decoration:none;} +.adminPost a:hover {text-decoration:underline;} + +.adminPost ul { margin-bottom: 0.4em; padding: 0 0 0 30px; } +.adminPost ul ul { margin: 0; } +.adminPost ul li { list-style-type: disc; } +.adminPost ul ul li { list-style-type: circle; } + +.adminPost ol { margin-bottom: 0.4em; padding: 0 0 0 30px; } +.adminPost ol ol { margin: 0; } +.adminPost ol li { list-style-type: decimal; } +.adminPost ol li ol li { list-style-type: lower-latin; } + +.adminPost img.aligncenter { margin-left:auto; margin-right:auto; display:block; } + +.adminPost .tableofcontent { + border: 1px solid #AAAAAA; + padding: 5px; + padding-left: 20px; + padding-right: 20px; + padding-bottom: 10px; + font-size: 0.95em; + min-width:200px; + float:left ; +} + + +.adminPost .tableofcontent h6 { + text-align: center; + font-size: 1em; + font-weight: bold; + margin : 3px ; + padding-top : 5px ; + padding-bottom : 5px ; +} +.adminPost .tableofcontent p { + margin : 3px ; + line-height:7pt; + padding-top : 2px ; +} +.adminPost .tableofcontent ul, .tableofcontent ol { + list-style: none; + padding: 0; +} +.adminPost .tableofcontent ul ul, .tableofcontent ol ol { + margin: 0 0 0 2em; +} +.adminPost .tableofcontent-end { + clear: both; +} diff --git a/core/css/tabs_admin.css b/core/css/tabs_admin.css new file mode 100644 index 0000000..6f312e6 --- /dev/null +++ b/core/css/tabs_admin.css @@ -0,0 +1,77 @@ +/* +VersionTabsCss : 1.0 +*/ + +#blc-tabs { + margin-top: 0.5em; +} + +/* Tab navigation */ +.tabsSL > ul { + margin-bottom: -1px; + padding-left: 1.5em; +} + +.tabsSL > ul li { + display: inline-block; + margin: 0 0.5em 0 0; + + border: 1px solid #DFDFDF; + + background: none repeat scroll 0 0 #F4F4F4; + + border-top-right-radius: 6px; + border-top-left-radius: 6px; + + -moz-border-radius-topright: 6px; + -moz-border-radius-topleft: 6px; + + -webkit-border-top-right-radius: 6px; + -webkit-border-top-left-radius: 6px; + + font-weight: bold; + text-shadow: 0 1px 0 #FFFFFF; +} + +.tabsSL > ul li.ui-tabs-active { + background: white; + color: black; + border-bottom-color: white; +} + +.tabsSL > ul li a { + display: inline-block; + padding: 0.5em 1em 0.6em 1em; + text-decoration: none; + color: #C1C1C1; +} + +.tabsSL > ul li.ui-tabs-active a { + color: black; +} + +/* Tab panels */ + +.tabsSL div.blc-section { + border: 1px solid #DFDFDF; + border-top-width: 1px; + padding: 1em; + + background: white; + + border-radius: 6px; + -moz-border-radius: 6px; + -webkit-border-radius: 6px; + + border-top-right-radius: 6px; + border-bottom-right-radius: 6px; + border-bottom-left-radius: 6px; + + -moz-border-radius-topright: 6px; + -moz-border-radius-bottomright: 6px; + -moz-border-radius-bottomleft: 6px; + + -webkit-border-top-right-radius: 6px; + -webkit-border-bottom-right-radius: 6px; + -webkit-border-bottom-left-radius: 6px; +} \ No newline at end of file diff --git a/core/css/translation_admin.css b/core/css/translation_admin.css new file mode 100644 index 0000000..5911025 --- /dev/null +++ b/core/css/translation_admin.css @@ -0,0 +1,13 @@ +/* +VersionTranslationCss : 1.0 +*/ + +.pt_flag { + display:block; + float:left ; + width:18px ; + height:12px ; + margin:0px 10px ; + background:url('../img/flags_sprite.png') no-repeat; +} + diff --git a/core/css/tree_admin.css b/core/css/tree_admin.css new file mode 100644 index 0000000..a48fe2c --- /dev/null +++ b/core/css/tree_admin.css @@ -0,0 +1,48 @@ +ul.tree, ul.tree ul { + list-style-type: none; + background: url("../img/tree_vline.png") repeat-y; + margin: 0; padding: 0; +} + +ul.tree ul { + margin-left: 10px; +} + +ul.tree li { + margin: 0; + padding: 0 12px; + line-height: 20px; + background: url("../img/tree_node.png") no-repeat; +} + +ul.tree li:last-child { + background: #fff url("../img/tree_lastnode.png") no-repeat; +} + +ul.tree li.minus_folder { + background: url("../img/tree_node_minus.png") no-repeat; +} + +ul.tree li.plus_folder { + background: url("../img/tree_node_plus.png") no-repeat; +} + +ul.tree li.minus_folder:last-child { + background: #fff url("../img/tree_lastnode_minus.png") no-repeat; +} + +ul.tree li.plus_folder:last-child { + background: #fff url("../img/tree_lastnode_plus.png") no-repeat; +} + +ul.tree div.loading { + padding-left:18px ; + background: url("../img/ajax-loader.gif") no-repeat left 3px; +} + +.highlight_placeholder { + border: 1px solid #A1A1A1 ; + height:15px; + width:200px; +} + diff --git a/core/data/SLFramework_OtherPlugins_201407.data b/core/data/SLFramework_OtherPlugins_201407.data new file mode 100644 index 0000000..2e8c259 --- /dev/null +++ b/core/data/SLFramework_OtherPlugins_201407.data @@ -0,0 +1,453 @@ +a:19:{s:19:"attachments-handler";a:2:{i:0;s:620:"

Attachments Handler

The Wordpress page: http://wordpress.org/extend/plugins/attachments-handler

Last update: June 30, 2014

Rating: 100    
  (by 1 persons)

Number of download: 413

";i:1;s:1627:"

Enables the supervision of your attachement, detects duplicates, detects unused files.

+ +

You may also create a list of all attached file in the page or in the child pages by using the following shorcode [attach child=1 only_admin=1 title='Title you want' extension='pdf,doc,png'].

+ +
+
+ attachments-handler screenshot 1 +

Issue detection

+
+
+ attachments-handler screenshot 2 +

All links

+
+
+ attachments-handler screenshot 3 +

Parameter screen

+
+
";}s:16:"backup-scheduler";a:2:{i:0;s:616:"

Backup Scheduler

The Wordpress page: http://wordpress.org/extend/plugins/backup-scheduler

Last update: June 30, 2014

Rating: 86.4    
  (by 19 persons)

Number of download: 70974

";i:1;s:1393:"

With this plugin, you may plan the backup of your entire website (folders, files and/or database).

+ +

You can choose:

+ + + +

This plugin is under GPL licence

+ +
+
+ backup-scheduler screenshot 1 +

A list of all backup files

+
+
+ backup-scheduler screenshot 2 +

The configuration page of the plugin

+
+
";}s:11:"dev-toolbox";a:2:{i:0;s:595:"

Dev Toolbox

The Wordpress page: http://wordpress.org/extend/plugins/dev-toolbox

Last update: May 25, 2014

Rating: 100    
  (by 1 persons)

Number of download: 651

";i:1;s:2232:"

Every thing you need to efficiently develop a fresh plugin.

+ +

The different features is:

+ + + +

This plugin is under GPL licence.

+ +
+
+ dev-toolbox screenshot 1 +

Synthesis of the plugin and interface to the SVN tools

+
+
+ dev-toolbox screenshot 2 +

Create a new plugin (download a zip)

+
+
+ dev-toolbox screenshot 3 +

SVN diff tools

+
+
+ dev-toolbox screenshot 4 +

SVN client

+
+
";}s:12:"enable-latex";a:2:{i:0;s:599:"

Enable Latex

The Wordpress page: http://wordpress.org/extend/plugins/enable-latex

Last update: May 25, 2014

Rating: 100    
  (by 4 persons)

Number of download: 2454

";i:1;s:1406:"

Insert LaTeX formulas in your posts.

+ +

Just type [latex size=0 color=000000 background=ffffff]\\displaystyle f_{rec} = \\frac{c+v_{mobile}}{c} f_{em}[/latex] in your post to show the LaTeX formula.

+ +

You can configure:

+ + + +

Plugin developped from the orginal plugin WP-LaTeX.

+ +

This plugin is under GPL licence.

+ +
+
+ enable-latex screenshot 1 +

The configuration page of the plugin

+
+
+ enable-latex screenshot 2 +

An example of LaTex formula in a post

+
+
";}s:16:"favicon-switcher";a:2:{i:0;s:611:"

FavIcon Switcher

The Wordpress page: http://wordpress.org/extend/plugins/favicon-switcher

Last update: May 25, 2014

Rating: 100    
  (by 6 persons)

Number of download: 6261

";i:1;s:1260:"

This plugin enables multiple favicon based on URL match rules.

+ +

For instance, you may configure that all the page with the word "receipices" or "important" have a specific favicon.

+ +

You may configure as much favicons you want without restriction.

+ +

This plugin is under GPL licence.

+ +
+
+ favicon-switcher screenshot 1 +

The configuration page of the plugin

+
+
+ favicon-switcher screenshot 2 +

The ICO in the tabs of the web browser

+
+
";}s:20:"formatting-correcter";a:2:{i:0;s:622:"

Formatting correcter

The Wordpress page: http://wordpress.org/extend/plugins/formatting-correcter

Last update: May 23, 2014

Rating: 100    
  (by 1 persons)

Number of download: 423

";i:1;s:1519:"

The plugin detects any formatting issues in your posts such as "double space" or any other issues that you may configure and proposes to correct them accordingly.

+ +
+
+ formatting-correcter screenshot 1 +

Results page

+
+
+ formatting-correcter screenshot 2 +

Modification page

+
+
+ formatting-correcter screenshot 3 +

Parameters page

+
+
";}s:10:"image-zoom";a:2:{i:0;s:597:"

Image Zoom

The Wordpress page: http://wordpress.org/extend/plugins/image-zoom

Last update: May 25, 2014

Rating: 83.2    
  (by 31 persons)

Number of download: 58717

";i:1;s:1618:"

Allow to dynamically zoom on images in posts/pages/...

+ +

When clicked, the image will dynamically scale-up. Please note that you have to insert image normally with the wordpress embedded editor.

+ +

You may configure:

+ + + +

If the image does not scale-up, please verify that the HTML looks like the following : <a href=' '><img src=' '></a>.

+ +

This plugin implements the colorbox javascript library.

+ +

This plugin is under GPL licence.

+ +
+
+ image-zoom screenshot 1 +

The configuration page of the plugin

+
+
+ image-zoom screenshot 2 +

An image zommed

+
+
";}s:15:"links-synthesis";a:2:{i:0;s:607:"

Links synthesis

The Wordpress page: http://wordpress.org/extend/plugins/links-synthesis

Last update: May 25, 2014

Rating: 100    
  (by 1 persons)

Number of download: 520

";i:1;s:1840:"

This plugin enables a synthesis of all links and the creation of thumbnail for links in an article and retrieves data from them.

+ +

In this plugin, an index of all links in the page/post is created at the end of the page/post.

+ +

In addition, each link is periodically check to see if the link is still valid.

+ +

p>In addition, each link is periodically check to see if the link is still valid.

+ +

You may display a thumbnail of the URL when the user move its mouse over the link.

+ +

This plugin is under GPL licence.

+ +
+
+ links-synthesis screenshot 1 +

Links with issues

+
+
+ links-synthesis screenshot 2 +

All Links

+
+
+ links-synthesis screenshot 3 +

Some parameters

+
+
";}s:12:"list-plugins";a:2:{i:0;s:599:"

List Plugins

The Wordpress page: http://wordpress.org/extend/plugins/list-plugins

Last update: May 25, 2014

Rating: 100    
  (by 2 persons)

Number of download: 2543

";i:1;s:939:"

Create a list of the active plugins in a page (when the shortcode [list_plugins] is found).

+ +

The list may contain:

+ + + +

Plugin developped from the orginal plugin WP-PluginsUsed.

+ +

This plugin is under GPL licence.

+ +
+
+ list-plugins screenshot 1 +

The configuration page of the plugin

+
+
";}s:11:"pages-order";a:2:{i:0;s:596:"

Pages Order

The Wordpress page: http://wordpress.org/extend/plugins/pages-order

Last update: May 25, 2014

Rating: 100    
  (by 2 persons)

Number of download: 6439

";i:1;s:1919:"

With this plugin, you may re-order the order of the pages and the hierarchical order of the pages.

+ +

Moreover, you may add this hierarchy into your page to ease the navigation of viewers into your website

+ +
+
+ pages-order screenshot 1 +

The tree view in the admin dashboard

+
+
+ pages-order screenshot 2 +

The configuration page

+
+
+ pages-order screenshot 3 +

The tree view displayed in the front pages

+
+
+ pages-order screenshot 4 +

The breadcrumb displayed in the front pages

+
+
";}s:15:"plagiary-search";a:2:{i:0;s:608:"

Plagiary Search

The Wordpress page: http://wordpress.org/extend/plugins/plagiary-search

Last update: May 25, 2014

Rating: 100    
  (by 1 persons)

Number of download: 1268

";i:1;s:1127:"

Find websites that copy/paste your content without authorization.

+ +

In addition, you will avoid to include involuntary plagiarism in your articles.

+ +

This plugin is under GPL licence.

+ +
+
+ plagiary-search screenshot 1 +

Examples of results with proximity images

+
+
+ plagiary-search screenshot 2 +

Process screen

+
+
";}s:16:"related-articles";a:2:{i:0;s:609:"

Related Articles

The Wordpress page: http://wordpress.org/extend/plugins/related-articles

Last update: May 25, 2014

Rating: 90    
  (by 2 persons)

Number of download: 4929

";i:1;s:1582:"

Returns a list of related entries to display into your posts/pages/etc.

+ +

You may configure the apparence, the weights, etc.

+ +

It is also possible to display featured images or first images in articles.

+ +

This plugin is under GPL licence

+ +
+
+ related-articles screenshot 1 +

Configuration page

+
+
+ related-articles screenshot 2 +

Examples

+
+
+ related-articles screenshot 3 +

Related content is displayed in page

+
+
";}s:11:"shorten-url";a:2:{i:0;s:595:"

Short URL

The Wordpress page: http://wordpress.org/extend/plugins/shorten-url

Last update: June 25, 2014

Rating: 93    
  (by 17 persons)

Number of download: 19535

";i:1;s:1768:"

Your article (including custom type) may have a short url hosted by your own domain.

+ +

Replace the internal function of wordpress get_short_link() by a bit.ly like url.

+ +

Instead of having a short link like http://www.yourdomain.com/?p=3564, your short link will be http://www.yourdomain.com/NgH5z (for instance).

+ +

You can configure:

+ + + +

Moreover, you can manage external links with this plugin. The links in your posts will be automatically replace by the short one if available.

+ +

This plugin is under GPL licence.

+ +
+
+ shorten-url screenshot 1 +

The synthesis of the short link generated for your post and page

+
+
+ shorten-url screenshot 2 +

The configuration page of the plugin

+
+
";}s:16:"simple-quotation";a:2:{i:0;s:612:"

Simple Quotation

The Wordpress page: http://wordpress.org/extend/plugins/simple-quotation

Last update: June 28, 2014

Rating: 100    
  (by 2 persons)

Number of download: 2098

";i:1;s:1580:"

Add random quotes to you blog.

+ +

You can configure this plugin:

+ + + +

This plugin is under GPL licence.

+ +
+
+ simple-quotation screenshot 1 +

The administration of quotes

+
+
+ simple-quotation screenshot 2 +

The configuration page of the plugin

+
+
+ simple-quotation screenshot 3 +

Examples of quote rendering

+
+
";}s:12:"social-linkz";a:2:{i:0;s:600:"

Social Linkz

The Wordpress page: http://wordpress.org/extend/plugins/social-linkz

Last update: June 28, 2014

Rating: 83    
  (by 13 persons)

Number of download: 40258

";i:1;s:1682:"

Add social links such as Twitter or Facebook in each post.

+ +

You can choose the buttons to be displayed such as :

+ + + +

It is possible to manually insert the buttons in your post by adding the shortcode [sociallinkz] or [sociallinkz url='http://domain.tld' buttons='facebook,google+' desc='Short description'] .

+ +

If you want to add the buttons in a very specific location, your may edit your theme and insert $this->print_buttons($post, [$url], [$buttons]); (be sure that $post refer to the current post).

+ +

It is also possible to add a widget to display buttons.

+ +

This plugin is under GPL licence.

+ +
+
+ social-linkz screenshot 1 +

The configuration page of the plugin

+
+
+ social-linkz screenshot 2 +

The buttons

+
+
";}s:12:"spam-captcha";a:2:{i:0;s:603:"

Spam Captcha

The Wordpress page: http://wordpress.org/extend/plugins/spam-captcha

Last update: June 29, 2014

Rating: 76.6    
  (by 6 persons)

Number of download: 19522

";i:1;s:2498:"

This plugins avoids spam actions on your website (comments and contact form).

+ +

Captcha image and Akismet API are available for this plugin.

+ +

You may configure (for the captcha):

+ + + +

This plugin is under GPL licence

+ +
+
+ spam-captcha screenshot 1 +

The result page

+
+
+ spam-captcha screenshot 2 +

The configuration page of the plugin

+
+
+ spam-captcha screenshot 3 +

An error when mistyping a captcha

+
+
+ spam-captcha screenshot 4 +

An error when detecting a spam

+
+
+ spam-captcha screenshot 5 +

Spam Report

+
+
";}s:13:"content-table";a:2:{i:0;s:609:"

Table of content

The Wordpress page: http://wordpress.org/extend/plugins/content-table

Last update: June 29, 2014

Rating: 87.2    
  (by 14 persons)

Number of download: 8403

";i:1;s:1326:"

Insert a table of content in your posts.

+ +

You only have to insert the shortcode [toc] in your post to display the table of content.

+ +

Please note that you can also configure a text to be inserted before the title of you post such as Chapter or Section with numbers.

+ +

Plugin developped from the orginal plugin Toc for Wordpress.

+ +

This plugin is under GPL licence.

+ +
+
+ content-table screenshot 1 +

The configuration page of the plugin

+
+
+ content-table screenshot 2 +

An example of a table of content

+
+
";}s:15:"traffic-manager";a:2:{i:0;s:608:"

Traffic Manager

The Wordpress page: http://wordpress.org/extend/plugins/traffic-manager

Last update: June 30, 2014

Rating: 88    
  (by 5 persons)

Number of download: 18895

";i:1;s:1740:"

You will be able to manage the Internet traffic on your website and to enhance it.

+ +

You may:

+ + + +

This plugin is under GPL licence

+ +
+
+ traffic-manager screenshot 1 +

Statistics on the web traffic

+
+
+ traffic-manager screenshot 2 +

Distribution of the OS and browser

+
+
+ traffic-manager screenshot 3 +

Details on connections

+
+
";}s:14:"update-message";a:2:{i:0;s:606:"

Update Message

The Wordpress page: http://wordpress.org/extend/plugins/update-message

Last update: June 30, 2014

Rating: 100    
  (by 7 persons)

Number of download: 4437

";i:1;s:1856:"

Add an update box in posts.

+ +

This box can contain a message, for instance in order to point out that the post have been modified of to stress that the post in no longer up to date

+ +

The message can be configured direcly when editing a post. There is a box 'Update message' added on the left.

+ +

In addition, you may use a shortcode [maj update='dd/mm/yy' expire='dd/mm/yy']xxx[/maj]

+ +

Plugin developped from the orginal plugin WP Update Message.

+ +

This plugin is under GPL licence.

+ +
+
+ update-message screenshot 1 +

The configuration page of the plugin

+
+
+ update-message screenshot 2 +

An example of an update box

+
+
+ update-message screenshot 3 +

Configuration of the update box in a post

+
+
";}} \ No newline at end of file diff --git a/core/data/framework.info b/core/data/framework.info new file mode 100644 index 0000000..f730599 --- /dev/null +++ b/core/data/framework.info @@ -0,0 +1,5 @@ +This plugin uses the SL framework. This framework eases the creation of new plugins by providing tools and frames (see dev-toolbox plugin for more info). + +You may easily translate the text of the plugin and submit it to the developer, send a feedback, or choose the location of the plugin in the admin panel. + +Have fun ! \ No newline at end of file diff --git a/core/debug.class.php b/core/debug.class.php new file mode 100644 index 0000000..9faf5b7 --- /dev/null +++ b/core/debug.class.php @@ -0,0 +1,98 @@ +SLFramework_Debug::log(get_class(), "An error occurred!", $error_level); +* the error_level may be 1=critical ; 2=error ; 3=warning ; 4=information ; 5=verbose. +*/ +if (!class_exists("SLFramework_Debug")) { + class SLFramework_Debug { + + + /** ==================================================================================================================================================== + * Get log file + * + * @return string the path of the log file + */ + + static function get_log_path() { + // Test if the directory of the log file exists + if (!is_dir(WP_CONTENT_DIR."/sedlex/log/")) { + @mkdir(WP_CONTENT_DIR."/sedlex/log/", 0755, true) ; + } + // We scan the folder to find the log file + $namelogfile = "" ; + $files = @scandir(WP_CONTENT_DIR."/sedlex/log/") ; + if (!empty($files)) { + foreach ($files as $f) { + if (preg_match("/log(.*)log/i", $f)) { + $namelogfile = $f ; + } + } + } + // If we didn't find anything + if ($namelogfile == "") { + $namelogfile = "log_".rand(1,10000000).".log" ; + @touch(WP_CONTENT_DIR."/sedlex/log/".$namelogfile) ; + } + + return WP_CONTENT_DIR."/sedlex/log/".$namelogfile ; + } + + /** ==================================================================================================================================================== + * Log function + * + * @param string $where the name of the plugin which call the log function + * @param string $text the text to be logged + * @param integer $error_level 1=critical ; 2=error ; 3=warning ; 4=information ; 5=verbose + * @return void + */ + + static function log($where, $text, $error_level=5) { + // Test if this message has to be loged + $frmk = new coreSLframework() ; + $level = $frmk->get_param('debug_level') ; + + if (!is_numeric($error_level)) + return ; + $error_level = floor($error_level) ; + if ($level<$error_level) + return ; + + $namelogfile = SLFramework_Debug::get_log_path() ; + + // We get the old content + $old_content = @array_slice(@file($namelogfile), 0, 1999) ; + if (!is_array($old_content )) { + $old_content = array("") ; + } + + // Once the file is identified, we stored the new logfile + $error = "VERBOSE" ; + if ($error_level==1) + $error = "CRITICAL" ; + if ($error_level==2) + $error = "ERROR" ; + if ($error_level==3) + $error = "WARNING" ; + if ($error_level==4) + $error = "INFO" ; + if ($error_level==5) + $error = "VERBOSE" ; + $new_content = "[".date("Ymd His")."] [".@getmypid()."] [".$where."] [".$error."] - ".$text."\r\n".implode("", $old_content) ; + + // We store the content + @file_put_contents($namelogfile, $new_content) ; + } + } +} + + + + +?> \ No newline at end of file diff --git a/core/feedback.class.php b/core/feedback.class.php new file mode 100644 index 0000000..ac7dc9d --- /dev/null +++ b/core/feedback.class.php @@ -0,0 +1,194 @@ +str_replace("/","",str_replace(basename(__FILE__),"",plugin_basename( __FILE__)))) + * @param string $pluginID the pluginID of the plugin (probably $this->pluginID) + * @return SLFramework_Feedback the SLFramework_Feedback object + */ + function SLFramework_Feedback($plugin, $pluginID) { + $this->plugin = $plugin ; + $this->pluginID = $pluginID ; + } + + /** ==================================================================================================================================================== + * Display the feedback form + * Please note that the users will send you their comments/feedback at the email used is in the header of the main file of your plugin Author Email : name@domain.tld + * + * @return void + */ + + public function enable_feedback() { + + $_POST['plugin'] = $this->plugin ; + + $info_file = pluginSedLex::get_plugins_data(WP_PLUGIN_DIR."/".$this->plugin."/".$this->plugin.".php") ; + + if (preg_match("#^[a-z0-9-_.]+@[a-z0-9-_.]{2,}\.[a-z]{2,4}$#",$info_file['Email'])) { + ?>

+

+

+
+ + + + + + + +
+ ".__("Feedback form",'SL_framework')."" ; + echo "

".__('This form is an easy way to contact the author and to discuss issues/incompatibilities/etc. with him', "SL_framework")."

" ; + echo "
" ; + + if (preg_match("#^[a-z0-9-_.]+@[a-z0-9-_.]{2,}\.[a-z]{2,4}$#",$info_file['Email'])) { + $table = new SLFramework_Table() ; + $table->title(array(__("Contact the author", "SL_framework"), "") ) ; + // Name + $cel1 = new adminCell("

".__('Your name:', 'SL_framework')."*

") ; + $cel2 = new adminCell("

") ; + $table->add_line(array($cel1, $cel2), '1') ; + // Email + $cel1 = new adminCell("

".__('Your email:', 'SL_framework')."*

".__('Useful... so that the author will be able to anwser you.', 'SL_framework')."

") ; + $cel2 = new adminCell("

") ; + $table->add_line(array($cel1, $cel2), '1') ; + // Comment + $cel1 = new adminCell("

".__('Your comments:', 'SL_framework')."*

".__('Please note that additional information on your wordpress installation will be sent to the author in order to help the debugging if needed (such as : the wordpress version, the installed plugins, etc.)', 'SL_framework')."

") ; + $cel2 = new adminCell("

") ; + $table->add_line(array($cel1, $cel2), '1') ; + + echo $table->flush() ; + + echo "

" ; + + $x = plugin_dir_url("/").'/'.str_replace(basename(__FILE__),"",plugin_basename(__FILE__)) ; + echo "" ; + } else { + echo "

".__('No email have been provided for the author of this plugin. Therefore, the feedback is impossible', 'SL_framework')."

" ; + } + echo "
" ; + } + + /** ==================================================================================================================================================== + * Send the feedback form + * + * @access private + * @return void + */ + public function send_feedback() { + // We sanitize the entries + $plugin = preg_replace("/[^a-zA-Z0-9_-]/","",$_POST['plugin']) ; + $pluginID = preg_replace("/[^a-zA-Z0-9_]/","",$_POST['pluginID']) ; + $name = strip_tags($_POST['name']) ; + $mail = preg_replace("/[^:\/a-z0-9@A-Z_.-]/","",$_POST['mail']) ; + $comment = strip_tags($_POST['comment']) ; + + // If applicable, we select the log file + $logfile = SLFramework_Debug::get_log_path() ; + + $info_file = pluginSedLex::get_plugins_data(WP_PLUGIN_DIR."/".$plugin."/".$plugin.".php") ; + + $to = $info_file['Email'] ; + + $subject = "[".ucfirst($plugin)."] Feedback of ".$name ; + + $message = "" ; + $message .= "From $name (".$mail.")\n\n\n" ; + $message .= $comment."\n\n\n" ; + + $message .= "* Accounts \n" ; + $message .= "**************************************** \n" ; + $admin = get_userdata(1); + $message .= "Admin User Name: " . $admin->display_name ."\n" ; + $message .= "Admin User Login: " . $admin->user_login."\n" ; + $message .= "Admin User Mail: " . $admin->user_email."\n" ; + $current_user = wp_get_current_user(); + $message .= "Logged User Name: " . $current_user->display_name ."\n" ; + $message .= "Logged User Login: " . $current_user->user_login."\n" ; + $message .= "Logged User Mail: " . $current_user->user_email."\n" ; + $message .= "\n\n\n" ; + + $message .= "* Information \n" ; + $message .= "**************************************** \n" ; + $message .= "Plugin: ".$plugin."\n" ; + $message .= "Plugin Version: ".$info_file['Version']."\n" ; + $message .= "Wordpress Version: ".get_bloginfo('version')."\n" ; + $message .= "URL (home): ".home_url('/')."\n" ; + $message .= "URL (site): ".site_url('/')."\n" ; + $message .= "Language: ".get_bloginfo('language')."\n" ; + $message .= "Charset: ".get_bloginfo('charset')."\n" ; + $message .= "\n\n\n" ; + + $message .= "* Configuration of the plugin \n" ; + $message .= "**************************************** \n" ; + $options = get_option($pluginID.'_options'); + // mask the password + $new_option = array() ; + $new_plugin_copy = call_user_func(array($pluginID, 'getInstance')); + + foreach ($options as $o=>$v) { + if ($new_plugin_copy->get_default_option($o)!=="[password]") { + $new_option[$o] = $v ; + } else { + $new_option[$o] = "********** (masked)" ; + } + } + ob_start() ; + print_r($new_option) ; + $message .= ob_get_clean() ; + $message .= "\n\n\n" ; + + $message .= "* Activated plugins \n" ; + $message .= "**************************************** \n" ; + $plugins = get_plugins() ; + $active = get_option('active_plugins') ; + foreach($plugins as $file=>$p){ + if (array_search($file, $active)!==false) { + $message .= $p['Name']."(".$p['Version'].") => ".$p['PluginURI']."\n" ; + } + } + + + $headers = "" ; + if (preg_match("#^[a-z0-9-_.]+@[a-z0-9-_.]{2,}\.[a-z]{2,4}$#",$mail)) { + $headers = "Reply-To: $mail\n". + "Return-Path: $mail" ; + } + + $attachments = array($logfile); + + // send the email + if (wp_mail( $to, $subject, $message, $headers, $attachments )) { + echo "
" ; + echo "

".__("The feedback has been sent", 'SL_framework')."

" ; + echo "
" ; + SLFramework_Debug::log(get_class(), "A feedback mail has been sent.", 4) ; + } else { + echo "
" ; + echo "

".__("An error occured sending the email.", 'SL_framework')."

".__("Make sure that your wordpress is able to send email.", 'SL_framework')."

" ; + echo "
" ; + SLFramework_Debug::log(get_class(), "A feedback mail has failed to be sent.", 2) ; + } + + //Die in order to avoid the 0 character to be printed at the end + die() ; + } + } +} + + +?> \ No newline at end of file diff --git a/core/img/ajax-loader.gif b/core/img/ajax-loader.gif new file mode 100644 index 0000000000000000000000000000000000000000..d0bce1542342e912da81a2c260562df172f30d73 GIT binary patch literal 673 zcmZ?wbhEHb6krfw_{6~Q|Nnmm28Kh24mmkF0U1e2Nli^nlO|14{Lk&@8WQa67~pE8 zXTZz|lvDgC+Z`3#dv5h=E26FfcG1 zbL_hF&)}42ws10s6^G;;cE1^EoUR)U5A70}d2pLv!jVIT7j&Z~EblI3x0K*v_sV|m z0kj3v921Z^em#l`(k(o@H$3ZdDRc@9NidXDNbqrumReCGv$gd8+e8WW28HVqkJ_9i zH>s*<31KtHjANIPvi2#*6BEu%3Dak5O_t&NBI)H?V$TxT}#l{vOTn5naXTfF^&~Hhq+NX@#Ccc>y7T?;vjI&jdhsDsPJyAw*m0Qz>i}K7# zL9w50Ng{fT}A5JUe8lRK1h7_Y2;BWJDd=c6f&i?Wv5(5q?6|P zQw{>maxZP<537OA37Uk}7@%_$4o$EWe_Zl>&#id|lE-BpDC#+Fn|msJ%_2h{Hg1vP z#N8WAzfWasG}yq|xqE)DrWaOofX=z|?*pgc%{ig5vl!pqDlC|q&~Z0$&Rvsft&VO- z4MZj+%-+Vx%W}v;V76hyp=;+R;x+~t^Q%*xuFTQAF2})fSfTHDAs>sO!OBw`)&)o$ c0!CNZt))x~rAZP^^P&YOFfdqy5)K#u0POD40{{R3 literal 0 HcmV?d00001 diff --git a/core/img/arrow_down.png b/core/img/arrow_down.png new file mode 100644 index 0000000000000000000000000000000000000000..efd996293ffbcdfed1cebf63edf5503318a0e0c5 GIT binary patch literal 273 zcmV+s0q*{ZP)$1K*=Ud+<*)5bx%t}_g+h7T!OKn)-@2d@ZMMP;tv!| zHIw<~=VXS~T1+uDi3Tw1ou+9PZQFkJF-d5xAtK1KY*`e=`ej0zrdyKdci8j1OBjZm zkCoy$z5)0K@DFRP;kxcN2!iXNhO#VwMa1;5h#=4NpHb0ClAK8Hdzj=QilXCa0f2|K zb|oTr5xI9=w*v5Z1~_zwx~`9o XaqKq81`xT700000NkvXXu0mjfnT2>p literal 0 HcmV?d00001 diff --git a/core/img/arrow_down_s.png b/core/img/arrow_down_s.png new file mode 100644 index 0000000000000000000000000000000000000000..37d3d9502d9648e9895edf66317d81d95a23c813 GIT binary patch literal 279 zcmV+y0qFjTP)v_5qB7g;hFRUqtW)@*vu2O0hGL(n3P=J^^!L-w8@LqXC>ujrQ9-{rg?#9Uxk1LN(lJFwPa{-IcKip%q zasZgYtZikl~nzq_Y_A6dU3ADKwR{^L<89LUPTRRaoMUI*sf;}DhSj{ dUS*{JGzXAmGsW!FxorRd002ovPDHLkV1nhzevkkF literal 0 HcmV?d00001 diff --git a/core/img/arrow_up.png b/core/img/arrow_up.png new file mode 100644 index 0000000000000000000000000000000000000000..4d170633db448dd40390443aa8f4188f8f07a84e GIT binary patch literal 250 zcmVthTeW5IlgDyJ-vvQIkNXeDi(q zh7sO-`eo!?nCJPXD2naePS1sH+r~l&MMRIUgud@j-g`MVaI2M)Bsn2|&~|O|&SKWqCHn$Pp$0R8`ewR0gFU2&qlE@{(;l& z4Bs-#8s{8-krbKpbyA)!l1fp=A~T9z0OSf_@D-3|re$E{)*yddX*4-B;BsGt)$#P) z{B(n=;ZT(zEl3>#(3ik2I{8MlPFjc(q}28?YA=E1Dr=KglopnR2(a0rQwW41N=gQz z1XUroBnSFoh|&{q%r0Fc*1K=M%Q$%H1--}ok59kT6_({Pg^L}h?*IS*07*qoM6N<$ Ef*L_*)&Kwi literal 0 HcmV?d00001 diff --git a/core/img/close_popup.png b/core/img/close_popup.png new file mode 100644 index 0000000000000000000000000000000000000000..fe9980a720bba3ddcda318090f0f2894ea05b1ee GIT binary patch literal 3429 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 Hu0mjf-@1UK literal 0 HcmV?d00001 diff --git a/core/img/error.png b/core/img/error.png new file mode 100644 index 0000000000000000000000000000000000000000..296415e2f6c565b38c2bfa0edd53f0b11ffa5cf3 GIT binary patch literal 4340 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 iOM29*SF`&`{~rK=WQCuj>qPGW0000;(@ literal 0 HcmV?d00001 diff --git a/core/img/file.png b/core/img/file.png new file mode 100644 index 0000000000000000000000000000000000000000..de48627a41ce01d5b84740e5a153fbfc621bb039 GIT binary patch literal 8406 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 R_C_oYkbkc%T`px5@IUEAG^hXo literal 0 HcmV?d00001 diff --git a/core/img/flags_sprite.png b/core/img/flags_sprite.png new file mode 100644 index 0000000000000000000000000000000000000000..5eaa636e5d4e257fc6f6036e764fa550f69943fc GIT binary patch literal 31098 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 Ra>xJx002ovPDHLkV1lWBs%8KH literal 0 HcmV?d00001 diff --git a/core/img/info.png b/core/img/info.png new file mode 100644 index 0000000000000000000000000000000000000000..83de6545870d0e0af384f39f59b6a05c7277a3b9 GIT binary patch literal 4403 zcmV-35zOw1P)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z000JFNklpg*qg{3T}!CNiW2d)(Mw{L~0-jD1`@RR3%)dGRE2>0oK~$6SAJqp^yK~p;I3b z#qloSwg1-xdsj6s-|>T|p5!ytX{?3ozG2*p$p?lYhR77)XbA}|S(H?yU6-wE*Ye29 zmArB6XlvJhd+q^t&YJ_Xj9+bja81iMAAJM_WU>*1*^nRxV=cxOR&6XLvNpn4P!jI0 zb-1glitlgvI&XjQ{*Jc)eCz^0S}1_MPd&J%-r5u#;N?xt4`Ee`b60~I3cV6PO@F(TFHQW@nd^9l5?J4W7ei3w+lPEYQN=@F zTm|s*Y#~rmirtTWc{N=lektY#FvSoUro&(@9K3Xczh0ay<^>q+G+#{8xU@~-WG2tr z2foUOo$b4=wR?cL9KhyP_ukKluNe1(f?->((3UBNOvgWn{Ct^lSn`!k#d$M#h%Ey1 zd`n;6VR^$cF7@_o2Hq_P@c8njpXI_>Kwv5iGSj%RmOuaG8S1NM=I;}K=q-V^Ov_L4 z#zN;vKtp{4mwJ01p8_zI1I_8`JGc=Ud}9cVEt0{H3w&67_l)J+e;MHH;P?yxlc8ZU zG-N|VHZa@>4L2e~F0y!WL2ovUanf}F&6PQ@)Kdw(NDxE@FSf+S5*Y|hVO5c_lpoyJ zax=?(-jw|-ZmRf&UoFV%G{DkI0PZK*h|ySMLc^>rf)o{cE8e7-|IiU29ZA*-%D3Va zfWXJ190?XoynrU9!rrX_NF`8?Bq(?)s07d-MY$EKx~8ytF^3oC!=uFftJf0cN}|ae zK!0T+Y7erbIIciD0;L5~GB1e=d-KYxf?mfJ1ldu5_DTSUb0dA|ghD4IQcI)~2st<1 zw8}Z;rd+QR5}i=wM*08_SBBu=X#W+K#6C_kQOJ63kqebEvN1yGS!1sg5+|u3_8INJ z0&uX>1F^Ms&v55S+@!=!DYPq)S|B7hQMU7+)F#wS`xoBFhWQzCQVX;za8n95DH-WH zMR^&nJd9qwdcKp`%aTYb+_Xl!g>Y25_3)3MVdc`rGXR|U>9@G&&YEf0Yl(IxZd#K_ zDPk|n$hk8Bug=vE1lGj6dfJY(uH3dAsWegw0xu>GEvBr{JbQF_?u?fLDFw+?l%nPSjT>1fWL~)3s#2KGbFu9>105asnclr)Z|(m@aiQ_20RX_*Tl@bg z6RG3grf0v?d-BBB>XtQDFK%2$&5|WJ$s|&1OcW7%9@(KGMtd%E?Q+j#n7Q)a#E}DU z7(ah`L3hJhh5>wF-1zz7Yw!N<_rN=oP3xM58dfyvMRzm^?WB>)!Nj4B!dx^l))(|$ t?8tTes{@z-Mu7369y9ON>~@a-4FG!UaA7!CkSG8E002ovPDHLkV1k>#P7nY9 literal 0 HcmV?d00001 diff --git a/core/img/param.png b/core/img/param.png new file mode 100644 index 0000000000000000000000000000000000000000..e8188efb4c402e726e8c6f707d9f99282022dc7e GIT binary patch literal 451 zcmV;!0X+VRP)Cz;a7N;lGWD^TI^S zY6*^Pxk#pZ^JeBTJ3EVXxm=zeVU0(Kd};hgp(u(blL<}Wy|5pr@yxU5^LaL#Etkvn zdJVqWY~m^m!=RkSVnHB|SCS}{U{ZSYIt7o9>NKq8e^CU^4m}OaXz}Lcv%=4U83ZN8n z9EXqXcDqKS?3Y4UwpUDLS~wbY#25fN8qY9XE7WSWw%aYs0|>(qZNdO}p71px+#_Ew zolf5h1K{~zgxc+PHT$KoDi5X{wh+eA1O~3qBcE`a(BW|4i+Nltgj?hD2;UfbQ^sk|e7HkXd)oTtCxe1G_SKhOI-?@#aZCY*M4P*KuS0ssIiXh$Rl z0FZ%fyN#mUHs@tYm$yrkh{6)xZv+rY_%MF}!tVybUk`m9ALx(q$NNQucKF+DZ;?+s zpG6&|aTC)r4wQZk>XHDnd)L?3fuuUc%q~o;7+lOzYWqrRUPhPA4s*WT?h;+=lOD_& zz1P84ddD%Xn9`z+x-<)0S>0L%oML)K5O9)cTFNW*CnP8@X(EdeJdD0z{CZ+$mMahl9%bhSHS_YQMOAh6LXikjG-eoA zPkb}FwYByA->7#?fVU4uCSqLO|C{`81iO&d#2yDSEmel$p3X^8i*W*vg}&`pG33 z_=Owq;;#ujz5T6F!h~TB`3cR#ACs8sJE~Q{s(%NQzMpYn)D8tCeRS20xb$l>5sO4^ z&`#HU&ggzOKi!iDigmXJXI;2xGVUA($yJS;xxh<(o;VlC=^fMehK;3%JedhC(M$0y zz32-q4&{8|yjEsX#hc~=ccYtFQrS2*5`>C~CJE`O^H`YcU*Fw3xR0Hc_E1|pSi4znV(N3?8yFV@JvMA(prHSzp;7BqlExbWRt;3Mru+QvE8y^U(V0=4FkB{hO%}Ymn|Ng zLYQYcH}u*6p_){Ga19l@>UjB*k+(g36!#L56-w&@1C~gN{q`P= zS^1C`Pxf`HCzeLQDMiQcI{H}Fe6fawKt)H1{%rA~9Rld0^lU=^;8Xbq-BU%%rib64dPUA9orv&#y>6 zncL@6MlLx++w*kOelg;n@MvMM96CRnwLvKvn$?c$kxp>Wcg7$dmwNS4P;ALc%1ygK z_q^PQRRxu28-9UWB?h1+~ z8()<};YuOrGP;3thoR^>FmL}nxQuPC_UuH|{Z6RdYsR2izK0>(C8RAEl3qzpyKnG* zCjkM8m#@&<-69K8{^4Zo4+pda9U27S4Dw~xe}m!5@w&FO+NHZ>1SuF?+Jk_+#fF1u z#n|=Q(nfNVXRt2e7}!a8M`q_=-%f^6MsJX#y@&?_0~EGYTM5SZe6Jt5CIeLFgq6r0 z!G(~07bW2*$cUcCINt6_GT#!5ilU+}J!)dlfvuXm@sV~?Y z`Tk0%xWlB_uxX5C+twZ0rLVF5k<@MT+U3X{QUfv|LxP<6mnBjlhf^Xzx8^(FKsrPsidSt_Me`f zQaYW^PEAe4xV>3kUjB9+TmWosZFL0#fpB|!yY=GYg3iv)=<@PX_Gz_R((Cn9R8&L@ z3kzGLqoct@A`$-=ng?Xq!>+Ebna0LO%kl9s0SFi$KpKsP7(j>!;PUcvT3TBAIX*t_ z=Ki|^&GXP=vAnCSth6MPNrCV;v0qeOT`fSX)kGWZ%ij39YTIk-=b~($dlw&CSh^7Z(@5 zVp3J8)9Ica92^)B>iPLO&CSh`)9IwKu`!CpVgdrNzrUZ@H`?CbrsCpa;za3r@;SGB zAp7-TXJvnLuY5FC`0BaCnqVB$)H@2tSttxgvW@G8 z2gv|zZ*PzICz0k73rtT>&&cH8mm0D%7>~yjoLLXwh7YVZQ&CYNP=N8xzW!ohh+&@V zFfa-fDq!^8-Q7<1^C`D_25Go_Qb$KepC=|J3jQ+6zFUFHqPz43A>U>5O>2Jx3u{|} TZ7dt000000NkvXXu0mjf1SX2$ literal 0 HcmV?d00001 diff --git a/core/img/tab_empty.png b/core/img/tab_empty.png new file mode 100644 index 0000000000000000000000000000000000000000..dfe066fd581a62a058dbeca909b5926fcb18e6c1 GIT binary patch literal 77 zcmeAS@N?(olHy`uVBq!ia0vp^Oh7Ec!3HFkTfSKY;&{3^hH%Ix|M~ylo|(g-@ucEG a1_q@w%&L=Ti1z^H89ZJ6T-G@yGywo#_7bE3 literal 0 HcmV?d00001 diff --git a/core/img/tab_how.png b/core/img/tab_how.png new file mode 100644 index 0000000000000000000000000000000000000000..30304ed54e4be9c5ad1b2aa86c7823695c8f9625 GIT binary patch literal 536 zcmV+z0_XjSP) zOHKko5Um*u5)=hpp-1o#L!#o!y}EMa1w^BXiHI?t!<`3k7NVFi-og0UyJH}L5P`s0 zuR~9|hgKI_$xC-vy?RsCU0?-4K>um>e~LkCN);@XO7V|Y>y&-FjAb=u*uS&yYIbh! zyjU#uWn2?%HJj&-;~Y7;93_)U$sxglhHD2VNLdxB_k-~&;cs1TK9GMOmP zcm_9Wnjn9%$<@uL)9EPBct$74QG?nm*Xs4#he|~}Kq{4@pMXaKm&fZ~71SzpUH6hF zc>3k}+2IEfedjkeXg!}7IfsQpn9G$lYQFE?xb8*h#0I|r2|l9Y6$TVGft~H`>$`H9 zDM4_szmIF9?;keW9R5Kk aO#K4x@5JJ)#-CvT0000)nFXcA3l zh9+!G8Ynoh*?-^u@@026lIMAF%aCsgBi3CKa6BG+`~5yi0-B~luh)}&Q6i9FgTcVp z#@55(Ff<+l#yPrNE-;(TAe+s?Znp!+aTt(FrJ&pGhG5hQ0k0j=+v(6sr4lbxRTU&j z;xWIzCWe4Cc|M=vWikOJlVL46GzpX($v5u-R;Qu2?K`Ej}VZ0z8ouK~<~O zgdXrg{FQDIpzFFopH5CGXyJ0X2LYSSrr!GX!~4J@xBP!ba~ z?k3EZ zJBwOT5FW(`imQtOV_`(W#?BWa7U?ZbHfbz^l}(5eQsx&(iY%K_SQ`tm(tjYRjTW|c zVnjuJq2gOlW=?W1SG>Chl7aEeJ>Qw{%0 ztDsG(U|JuS%jLstHj{3j*%pfh)M_>0*%bQUOF^-Q2r8n{=r=s@(CKtwKA%6SjYb3d z{XV7qJr;}IldnLkA_Kn-sZ{DQnM~f*>vaJW*TrH1I-L%@UN0OD2XMRHP_0&Bzu!YH zm-~bf+mPb}Ua;hZ*=+U^58qK_SR?LaHk(1C(SXfngWKC%kz6pw<1rkMN7!z+kWQ!H zghHVsV()pUTCEn6Ggc@R`1&_LNXUxCBHL^>Y%mzGQmI64Al8s>4hDll09RL|(Fhn7 zXti3v?gJ8YpEE+c-44%nS9(jk-3ID52@&Ebar=yrcBo#H$%KPX{otzsm&+x>6dl!` zgf~S*{up#Sjg25mr4mR%PQ}`&R4Oo;OyKkR0ACR3_4*4k z+TesjxU?b6oX6v#Pg!X;o8b5RX?{5_tn_hKLz;dnE)DT>5(osK+wJlhq*0NI7$FTQ zjRK`c!+K4uRx9r=Jpie2!g9HMpvk9K;dD9)r(8(I4A$#4e?bHaVlWsk_T>I;h~yRO z3)GjWRQ=z@LL(B1=y8}|ClUzP6 literal 0 HcmV?d00001 diff --git a/core/img/tab_param.png b/core/img/tab_param.png new file mode 100644 index 0000000000000000000000000000000000000000..753b14bddac28222c34fc1c4f953d13b3f7ecfa3 GIT binary patch literal 507 zcmV z&1%9x5Z(<@Q4{RJ{y?DMDevG-dMZ78EVPf1gHp68DN3+DgHY&u^wvWkz_U;q2vkck z_=lKuW;Hf$H~p~=Om^m*nJ+WhQR@3X*`-LkBtx!W5w_dy8t8hIN~PkXikguF&@@dY zl}g=$e+GJtcq|qp_(?QPBercLM1bg=8Sto9s~62?^Dgl5WQ46&D+6Rt;OpU_$c7i# z*=&}D`u+YhpTkC$B*}t+1A6Lt-X10;lSwk4&+CR^Q0VRkF%-+P9w3LHqP;{vpR7Z8 z>sv0DJ1G{63k<>cBH)v5x64K^l}dGhQJE|jEG=+1PDWTRm#;Taa7LpMp_FPoj{bM6 zw!Rd;5Jv`K9r7_8H%cPcMo|>3`O+cWat*sjMVlx7i7>+#fNvHG1%iq;ACDwdRh7?O z`}usHpo%2&8?Htc)sWe2Cd3ikif}TS{GD)h%fiB~2os5fkPN}`c#JzLj7N?<91evA z0NSqW2J5u^#|UN8PN$-DZ+&-8da{-W#pBVaCc^bY5%<2Z+d x!Qc||y>vQlG#ZWj5FeqC6!!mZNABUa%pb|5qjf1`u3i8D002ovPDHLkV1fYt5P)7gL#VoXCZCgFd--=Cgj>KxRA_kZvA-ur#t@B4edKgaVtJY^F-C5%}A z1>D%!FnBzk=j?K{H@#kOUuoPh$>?lF(C53$-{Lqfl}fjkmX=^~agk$}u<@V3wY9ZZ zqoboAS5{WIv9U2YKR<_5Dg}dJ1RW^Z<#N48*q+1T;HIaip-?CYFpI?kM@L5#snG0p z`=-z5>&Ta|jr$|QmSr-T3nPPSwF;-Fr;yENfnYN;GoVl?f|v@pyu2J&sZ?8MXJ^~Y zzb_E;YUVf&NG3&hczDQU3Vu$f6H290kmO?;wiAiOI|l44xz%cEZ8jV1@9)F)^)>A5 z>;Oj0d?1s_baFX4Ir+P@fs-EK>guX?YHCU=m&-w|RzoNh5};bG7K+6pB$G+V=kuV~ z>jBRZE9iE+UodD7P@~Zl7Zw%(O9ON|T^E$rbGaN$OiX~)YK2ClL7cWoB&rMqmdoWI zb8~ZoM3VUsO7cx66FmsTVllqmZZ8J{fo}{b_WS*8E{yeheUEO&*Xyh+l}f<8LOPv> z+1XiPJsOPyo_)Q$yZfng5GOr_jnyApUtfPoFKjd#1rWigQwd=W3jSz+!1m@ojOJZH z2E$?nECr!#=I7_(yrM1^ zi!1n|6U5iPbVVS00000 LNkvXXu0mjf%&1bX literal 0 HcmV?d00001 diff --git a/core/img/tab_trad.png b/core/img/tab_trad.png new file mode 100644 index 0000000000000000000000000000000000000000..e93454f7ab758128b9515711b24ce0154f3a94ba GIT binary patch literal 919 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 j>&Y1j4(gTe~DWM4fSK1-d literal 0 HcmV?d00001 diff --git a/core/img/tree_lastnode_minus.png b/core/img/tree_lastnode_minus.png new file mode 100644 index 0000000000000000000000000000000000000000..812bab79f4abe1d9a9c083267b888685b41eecb9 GIT binary patch literal 144 zcmeAS@N?(olHy`uVBq!ia0vp^96&6>!3HEZNY`Wosc=sh#}JK)R|8IS9WdbVcCWuU zx&GPR?!PDATxr~vynQ1pOYcX=gfx}T-4-7j;yHf#9Fth%E10=gsC2!3HEZNY`WosVGku#}JK)S0@W}fnyd2>Z&V8+^;Jq%)kOfUB8 we|mRrZiFgVPi1|?lzhd8*l_zjJ53+5Y@OhFIr~nW1ke@+Pgg&ebxsLQ0RCY#ng9R* literal 0 HcmV?d00001 diff --git a/core/img/tree_node.png b/core/img/tree_node.png new file mode 100644 index 0000000000000000000000000000000000000000..29f6c446045ada93d886de10a85dcbf7c686cc48 GIT binary patch literal 145 zcmeAS@N?(olHy`uVBq!ia0vp^96&6>$P6UAuD;U%QfvV}A+8L}3>_UEvNtA_0Yw-~ zg8YIR9G=}s19CVEJR*x37`TN&n2}-D90{Nxdx@v7EBiGLHW3ch)+mu2ppc-ai(?4K k_2i5MhxY%H21lhBE=}fY@LT011C(U&boFyt=akR{0Bd3)YXATM literal 0 HcmV?d00001 diff --git a/core/img/tree_node_minus.png b/core/img/tree_node_minus.png new file mode 100644 index 0000000000000000000000000000000000000000..f0aa350a9c95021d18fadc66bd3ab0334cea49d4 GIT binary patch literal 145 zcmeAS@N?(olHy`uVBq!ia0vp^96&6>!3HEZNY`WosR&OO#}JK)R|8J-H5hQbK2tYQ zxc-{8_zw@8#BD1-rfuQm?052XG%^-0-}sPmzrq(UC8g^NJGSgIyVmMv#CYJ0-}6vW u4fVUVMO$8ZK6=&PZ1Af8N7H0|fwC@n$IOo>&1`^nFnGH9xvX!3HEZNY`Wosd!Hp#}JK)S0`-bI$*%zGJom* z8JhLa=BeuaJp4LHF;}BCPxOgMU$w?NJx`mj$GrcZ77*;>n0fO=rKiTy8*3Pzy<^H) ztNU?l*a`n{_f$C(&irPbcqgRc?>YNmyE#9z4>O*Z@;>(S{FGdvRScf4elF{r5}E)9 CLpx^x literal 0 HcmV?d00001 diff --git a/core/img/tree_vline.png b/core/img/tree_vline.png new file mode 100644 index 0000000000000000000000000000000000000000..4c9bc6d749a5c5d6b34202e17dd06f1d790d024c GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrA$P6U?WtMRQDdqs55Z8{5j)>H}%|I?^fk$L9 z0|U1(2s1Lwnj--eWH0gbb!ETC!6qy$$>y{53s8vL)5S4_<9c$!0Tu=Z5eCMmZ5zCR O!VI3SelF{r5}E))DH%rq literal 0 HcmV?d00001 diff --git a/core/img/valid.png b/core/img/valid.png new file mode 100644 index 0000000000000000000000000000000000000000..743ef89c3a48cb65d51f0efb7305be9f2beba401 GIT binary patch literal 4447 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 literal 0 HcmV?d00001 diff --git a/core/img/warning.png b/core/img/warning.png new file mode 100644 index 0000000000000000000000000000000000000000..1c6b8eb0fb39720842be86b0343adfdcbf929982 GIT binary patch literal 4567 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 By~_Xq literal 0 HcmV?d00001 diff --git a/core/js/feedback_admin.js b/core/js/feedback_admin.js new file mode 100644 index 0000000..5fee96c --- /dev/null +++ b/core/js/feedback_admin.js @@ -0,0 +1,50 @@ + + + +/* ===================================================================================== +* +* Send the modified translation +* +*/ + +function send_feedback(plug_param, plug_ID) { + jQuery("#wait_feedback").show(); + jQuery("#feedback_submit").remove() ; + + var arguments = { + action: 'send_feedback', + name : jQuery("#feedback_name").val(), + mail : jQuery("#feedback_mail").val(), + comment : jQuery("#feedback_comment").val(), + plugin : plug_param, + pluginID : plug_ID + } + //POST the data and append the results to the results div + jQuery.post(ajaxurl, arguments, function(response) { + jQuery("#wait_feedback").fadeOut(); + jQuery("#form_feedback_info").html(response); + window.location = String(window.location).replace(/\#.*$/, "") + "#top_feedback"; + }).error(function(x,e) { + if (x.status==0){ + //Offline + } else if (x.status==500){ + jQuery("#form_feedback_info").html("Error 500: The ajax request is retried"); + send_feedback(plug_param, plug_ID) ; + } else { + jQuery("#form_feedback_info").html("Error "+x.status+": No data retrieved"); + } + }); +} + +function modifyFormContact() { + name = jQuery("#feedback_name").val() ; + mail = jQuery("#feedback_mail").val() ; + var emailRegEx = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i; + + if ((name.length!=0)&&(mail.length!=0)&&(mail.search(emailRegEx)!=-1)) { + jQuery("#feedback_submit_button").removeAttr('disabled'); + } else { + jQuery("#feedback_submit_button").attr('disabled', 'disabled') ; + } + +} \ No newline at end of file diff --git a/core/js/parameters_admin.js b/core/js/parameters_admin.js new file mode 100644 index 0000000..e3f74a4 --- /dev/null +++ b/core/js/parameters_admin.js @@ -0,0 +1,111 @@ +/* ===================================================================================== +* +* Toggle folder +* +*/ + +function activateDeactivate_Params(param, toChange) { + isChecked = jQuery("#"+param).is(':checked'); + for (i=0; i&%BT13GDY%Hxv?|pULyeV+1t+_c-KD$thWn8cR4^ag zrg_j8#TR{PjN5FprfW>v^idFeRT1aD_#nO(eDp!6zjNm%1~lZ}-<_E==l?%vW`8@l z_fy5+Q#_CHyl|V0lzQiOrS9HE%lJ;lLBSLrWc)t7AASrUfnUJ;;C1)_{Jt3f3imPo zqu`&AfAx1Uz6B+I-yWs*!^ffcc?LcNkHdT6yHI?ch2kfHBk(pgz zb9fex!{K6n8A{%(a0sqL>GSVU`g03P-}-2d^zC^l`Cf;z@9koIreF<9-($#D^#K%r z^YF-cm?lF*L+TBiB=w*gt7Eod6RVDefdNOuATi}cCpD{0n$*IG$e^MptgVcj@>w;; z!uCMdOsvPP4RmaSL>*0|2CXqvYVE{Dw~N^wbz`sDaEiJlHq-89o0 zHPKctMNt@)Fjr2adcu4hr?yXxn#eS%If~VQuYORSGL6*6>MaumbcH=()9P}K$g%`d z>6G=QMz$GFQP#LEn>4o4scCH@tAjAnsD|fQtl7w_fqIbGs*MKKiD7lp#+J5*x?(3x z+DP=2S3FXwXrlvrPA8EG;)ao)dn02 zJF}8J?{`28I0h3`Q-53&Vbt{EuA6<7EoAe`wX=D*?6%yRYv)f#xvsmK%_!G#mtD_o zscaFfW*2oH+h%@4zBJ1qYq>9Z6Td{*I`dhJlx?zH=iSNX$dt7-A}r?{{~I7CHnJJ^ ztaz1fo_f)(h>a`mG9EhH`kSoHNNVLSxvyPM6Vi2Sgj^{pBv!@S|CB{F#H?j=#VW4n z*xI8H=d;E9UgoL`VnyM1BX3AAznNHAKy%$)!=hYLc5abjF`FeJy320Imu9w=&5;$U z9sAh@*H-ww=9YAcCb@43nfC>^#DNs+8`^O<820iS2edyAJ?K|wCAsg5oD*SW<0!V= zrmw4;S2UxuS+|C~Z~ZrULptI?%juvepI%4IY#`SqkB_*JoyRQFJ<4k#&F!Ybb*kYi z;A<<_Vi7Z5c9}Dg)wbKjl$659jMOie2gjO?a!6}Mox4`J`rd7Eh2&_rZ<9B^okU@5 tooZLa^H-c4Qv4to6gu*I;JdgF@>$5|{^eLoiU!=k1e@dp7oc3Ge*n|&>t_G} literal 0 HcmV?d00001 diff --git a/core/lang/SL_framework-ar_JO.po b/core/lang/SL_framework-ar_JO.po new file mode 100644 index 0000000..2909ba9 --- /dev/null +++ b/core/lang/SL_framework-ar_JO.po @@ -0,0 +1,131 @@ +msgid "" +msgstr "" +"Generated: SL Framework (http://www.sedlex.fr)\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2014-03-24T09:39:54+00:00\n" +"Last-Translator: GaithBader \n" +"Last-Translator: ahmed \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" +"X-Poedit-Language: Arabic\n" +"X-Poedit-Country: Jordan\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-KeywordsList: __;\n" +"X-Poedit-Basepath: \n" +"X-Poedit-Bookmarks: \n" +"X-Poedit-SearchPath-0: .\n" +"X-Textdomain-Support: yes\n" + +msgid "About..." +msgstr "حَول" + +msgid "Settings" +msgstr "الإعدادات" + +msgid "KB" +msgstr "KB" + +msgid "MB" +msgstr "MB" + +msgid "GB" +msgstr "GB" + +msgid "Update" +msgstr "تحديث" + +msgid "Translation" +msgstr "ترجمة" + +msgid "Your name:" +msgstr "إسمك:" + +msgid "Language" +msgstr "لغة" + +msgid "Information" +msgstr "معلومات" + +msgid "Delete" +msgstr "حذف" + +msgid "Donate" +msgstr "تبرع" + +msgid "Contact the author" +msgstr "يرجى الاتصال بالمؤلف" + +msgid "Send feedback" +msgstr "أرسل ملاحظاتك" + +msgid "The feedback has been sent" +msgstr "تم إرسال ملاحظاتك" + +msgid "Current Page" +msgstr "الصفحة الحالية" + +msgid "Installed plugins" +msgstr "تثبيت الاضافات" + +msgid "Last update:" +msgstr "آخر تحديث:" + +msgid "Log options" +msgstr "سجل الإعدادات" + +msgid "Your email:" +msgstr "بريدك الإلكتروني:" + +msgid "Description" +msgstr "الوصف" + +msgid "Version: %s by %s" +msgstr "إصدار: %s بواسطة %s" + +msgid "Your comments:" +msgstr "تعليقك :" + +msgid "Plugins that you may install" +msgstr "إضافات يمكنك تثبيتها" + +msgid "Error: security issue!" +msgstr "خطأ : مشكلة امنية" + +msgid "Parameters" +msgstr "المتغيرات" + +msgid "(Delete)" +msgstr "( حذف )" + +msgid "Values" +msgstr "القيمة" + +msgid "Warning: some characters have been removed because they are not allowed here" +msgstr "تحذير : بعض الحروف قد تم إزالتها لانها غير مصرح بها هنا" + +msgid "(integer)" +msgstr "( رقم )" + +msgid "Reset to default values" +msgstr "إسترجاع القيم الإفتراضية" + +msgid "Add a new translation" +msgstr "اضف ترجمة جديدة" + +msgid "The translation %s have been sent" +msgstr "الترجمة %s قد أرسلت" + +msgid "Send translation" +msgstr "أرسل الترجمة" + +msgid "Ratio %" +msgstr "نسبة مئوية %" + +msgid "Translators" +msgstr "مترجم" + diff --git a/core/lang/SL_framework-bg_BG.mo b/core/lang/SL_framework-bg_BG.mo new file mode 100644 index 0000000000000000000000000000000000000000..49a7d280239f0c3fae4cea64c54e2821599cd9e6 GIT binary patch literal 12470 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 MDz~bk*H!KR1uEV6$^ZZW literal 0 HcmV?d00001 diff --git a/core/lang/SL_framework-bg_BG.po b/core/lang/SL_framework-bg_BG.po new file mode 100644 index 0000000..3f56f6b --- /dev/null +++ b/core/lang/SL_framework-bg_BG.po @@ -0,0 +1,433 @@ +msgid "" +msgstr "" +"Generated: SL Framework (http://www.sedlex.fr)\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2013-04-07T15:16:51+00:00\n" +"Last-Translator: KalinLynnDimitrov \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Poedit-Language: Bulgarian\n" +"X-Poedit-Country: Bulgaria\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-KeywordsList: __;\n" +"X-Poedit-Basepath: \n" +"X-Poedit-Bookmarks: \n" +"X-Poedit-SearchPath-0: .\n" +"X-Textdomain-Support: yes\n" + +msgid "About..." +msgstr "Относно" + +msgid "Settings" +msgstr "Настройки" + +msgid "Log options" +msgstr "Настройки на системната история" + +msgid "What is the debug level:" +msgstr "" + +msgid "See the debug logs" +msgstr "" + +msgid "1=log only the critical errors;" +msgstr "" + +msgid "2=log only the critical errors and the standard errors;" +msgstr "" + +msgid "3=log only the critical errors, the standard errors and the warnings;" +msgstr "" + +msgid "4=log information;" +msgstr "" + +msgid "5=log verbose;" +msgstr "" + +msgid "Multisite Management" +msgstr "Управление при режим на множество сайтове" + +msgid "Do you want to allow sub-blogs to modify the translations of the plugins:" +msgstr "" + +msgid "If this option is unchecked, the translation tab won't be displayed in the blog administration panel." +msgstr "" + +msgid "Summary page for the plugins developped with the SL framework" +msgstr "" + +msgid "For now, you have installed %s plugins including %s plugins developped with the SedLex's framework" +msgstr "" + +msgid "The core plugin is located at %s" +msgstr "" + +msgid "Plugin name" +msgstr "Име на разширение" + +msgid "Description" +msgstr "Описание" + +msgid "There is a SQL database for this plugin" +msgstr "За това разширение има SQL база данни" + +msgid "Version: %s by %s" +msgstr "Версия: %s от %s" + +msgid "List of SL plugins" +msgstr "Списък с SL разширения" + +msgid "Parameters of the framework" +msgstr "Параметри на средата" + +msgid "Manage translation of the framework" +msgstr "Превод на средата" + +msgid "The folder %s is not %s !" +msgstr "Папката %s не е %s!" + +msgid "The file %s is not %s !" +msgstr "Файлът %s не е %s!" + +msgid "The folder %s does not exists and cannot be created !" +msgstr "Папката %s не съществува и не може да бъде създадена!" + +msgid "The file %s does not exists and cannot be created !" +msgstr "Файлът %s не съществува и не може да бъде създаден!" + +msgid "There are some issues with folders rights. Please corret them as soon as possible as they could induce bugs and instabilities." +msgstr "Има проблем с правата за писане в папката. Моля, коригирайте ги възможно по-бързо, тъй като е възможно това да причини нестабилност." + +msgid "Please see below:" +msgstr "Моля, вижте по-долу:" + +msgid "Close popup" +msgstr "Затвори прозореца" + +msgid "Here, you may configure three levels of translations: at the plugin level, at the framework level, and at the dashboard level." +msgstr "" + +msgid "Please be informed that your current language is %s. Text will be translated if a translation is available." +msgstr "" + +msgid "If you want to modify the language, please go in %s and find %s or %s. The second argument is your language and you may modify it as you want." +msgstr "" + +msgid "Translations available for this plugin (i.e. %s)" +msgstr "Преводи за това разширение (т.е. %s)" + +msgid "Translations available for the SL framework (stored in %s)" +msgstr "" + +msgid "Adding a new translation for this language: %s" +msgstr "Добавяне на нов превод за този език: %s" + +msgid "Sentence to translate" +msgstr "Изречение за превод" + +msgid "Translation" +msgstr "Превод" + +msgid "Your name:" +msgstr "Името ви" + +msgid "(if your name/pseudo is already in the list, there is no need to fill this input)" +msgstr "(ако името/псевдонима вече е в списъка, то тогава няма нужда да попълвате това поле)" + +msgid "Your email or your website:" +msgstr "Е-поща или уеб сайт." + +msgid "Create the translation files" +msgstr "Създай преводни файлове" + +msgid "Add a new translation" +msgstr "Добави нов превод" + +msgid "Modifying the translation for this language: %s" +msgstr "Модифициране на превода за този език: %s" + +msgid "The number of occurrence of %s does not match in both string. Please note that the string %s will be replaced with a contextual string." +msgstr "" + +msgid "Modify the translation files" +msgstr "Модифицирай преводните файлове" + +msgid "Modify translations" +msgstr "" + +msgid "%s sentences have been translated (i.e. %s)." +msgstr "%s изречения са преведени (т.е. %s)." + +msgid "%s sentences have been translated (i.e. %s) %s %s sentences have to be checked because they are close (but not identical) to those to translate.%s" +msgstr "%s изречения са преведени (т.е. %s) %s %s изречения трябва да бъдат проверени, защото са близо (но не идентични) за превод. %s" + +msgid "The translation %s have been sent" +msgstr "Преводът %s беше изпратен" + +msgid "An error occured sending the email." +msgstr "Имаше грешка по време на изпращане на електронното писмо." + +msgid "Make sure that your wordpress is able to send email." +msgstr "Проверете дали вашият Wordpress може да праща е-писма." + +msgid "Send translation" +msgstr "" + +msgid "%s file cannot be created for %s as there is no translated sentence. Please, translate at least one sentence to create a file" +msgstr "%s файл не може да бъде създаден за %s, тъй като няма преведено изречение. Моля, преведете поне едно изречение." + +msgid "%s file has been updated for %s" +msgstr "%s файл беше ъпдейтнат за %s" + +msgid "%s file has been updated from this file" +msgstr "%s файл беше ъпдейтнат от този файл" + +msgid "%s file has been created with a new translation for %s" +msgstr "%s файл беше създаден с нов превод за %s" + +msgid "%s file has been created from this file" +msgstr "%s файл беше създаден от този файл" + +msgid "If you do not want to loose your translations on the next upgrading of this plugin, it is recommended to send the translation files to the author by clicking %s here %s !" +msgstr "" + +msgid "If you do not want to loose your translations on the next upgrading of this plugin, please save them on your hard disk before upgrading and then restore them after the upgrade !" +msgstr "" + +msgid "Confirmation" +msgstr "" + +msgid "Summary cached %s" +msgstr "" + +msgid "The sentences used in this plugin are in English. Help the others users using the same language as you by translating this plugin." +msgstr "Изреченията в този плъгин са на Английски. Помогнете на другите, ползващи вашият език като преведете този плъгин." + +msgid "This plugin is available in %s languages." +msgstr "" + +msgid "There are %s sentences to be translated in this plugin." +msgstr "" + +msgid "Language" +msgstr "Език" + +msgid "Ratio %" +msgstr "Съотношение %" + +msgid "Translators" +msgstr "Преводачи" + +msgid "This is the default language of the plugin. It cannot be modified." +msgstr "Това е езикът по подразбиране на плъгина и не може да бъде модифициран." + +msgid "Modify" +msgstr "Промени" + +msgid "Send to the author of the plugin" +msgstr "Изпрати до автора на плъгина" + +msgid "You may add a new translation hereafter (Please note that it is recommended to send your translation to the author so that he would be able to add your translation to the future release of the plugin !)" +msgstr "" + +msgid "Add" +msgstr "Добави" + +msgid "The 'SL framework' is a framework used for developping many plugins like this one. Thus, if you participate translating the framework, it will be very helpful for a bunch of plugins." +msgstr "" + +msgid "There is %s languages supported for the 'SL framework'." +msgstr "" + +msgid "There is %s sentence to be translated in the framework." +msgstr "" + +msgid "Send to the author of the framework" +msgstr "Изпрати до автора на средата" + +msgid "Error: the submitted value is not an integer and thus, the parameter has not been updated!" +msgstr "Грешка: изпратената стойност не е цифра и затова параметърът не бе обновен!" + +msgid "Error: the submitted string does not match the constrains" +msgstr "Грешка: изпратеният низ не отговаря на ограниченията" + +msgid "Error: the submitted file can not be uploaded!" +msgstr "Грешка: избраният файл не може да бъде качен!" + +msgid "Error: security issue!" +msgstr "Грешка: проблем в сигурността!" + +msgid "Parameters" +msgstr "Параметри" + +msgid "Here are the parameters of the plugin. Modify them at will to fit your needs." +msgstr "Тук са параметрите на разширението. Модифицирайте ги както ви е нужно." + +msgid "Here are the parameters of the framework. Modify them at will to fit your needs." +msgstr "Тук са параметрите на средата. Можете да ги променяте по свое усмотрение така, че да отговарят на нуждите ви." + +msgid "Values" +msgstr "Стойности" + +msgid "Warning: some characters have been removed because they are not allowed here" +msgstr "Внимание: някои знаци бяха премахнати, защото не са позволени тук" + +msgid "(integer)" +msgstr "(цифра)" + +msgid "(If you want to delete this file, please check this box %s)" +msgstr "(ако желаете да изтриете файла, моля поставете отметка тук %s)" + +msgid "Update" +msgstr "Обновяване" + +msgid "Reset to default values" +msgstr "Връщане на начлните настройки" + +msgid "Some parameters have not been updated due to errors (see below)!" +msgstr "" + +msgid "Parameters have been updated (but with some warnings)!" +msgstr "" + +msgid "Parameters have been updated successfully!" +msgstr "" + +msgid "Parameters have been reset to their default values!" +msgstr "" + +msgid "Plugins that you may install" +msgstr "Плъгини, които можете да инсталирате" + +msgid "The following plugins have been developed by the author and are not yet installed:" +msgstr "Следните плъгини са били разработени от автора и още не са инсталирани:" + +msgid "Plugin not yet installed" +msgstr "Плъгина още не е инсталиран" + +msgid "Description and Screenshots" +msgstr "Описание и Снимки" + +msgid "All author's plugins have been installed. Thank you!" +msgstr "Всички плъгини на автора бяха инсталирани. Благодаря Ви!" + +msgid "Installed plugins" +msgstr "Инсталирани плъгини" + +msgid "You have already installed the following author's plugins:" +msgstr "Вече сте инсталирали следните плъгини:" + +msgid "Plugin already installed" +msgstr "Плъгина вече е инсталиран." + +msgid "The Wordpress page: %s" +msgstr "Wordpress страницата: %s" + +msgid "An Unexpected HTTP Error occurred during the API request." +msgstr "" + +msgid "Last update:" +msgstr "Последен ъпдейт:" + +msgid "Rating: %s" +msgstr "Рейтинг: %s" + +msgid "by %s persons" +msgstr "от %s души" + +msgid "Number of download:" +msgstr "Брой сваляния:" + +msgid "Filter: %s" +msgstr "Филтър: %s" + +msgid "%s of %s" +msgstr "%s от %s" + +msgid "Current Page" +msgstr "Текуща страница" + +msgid "Donate" +msgstr "Дари" + +msgid "If you like the plugin, do not hesitate to donate. Please note that this plugin is developed in my spare time for free." +msgstr "" + +msgid "This is not mandatory! but it may be a sign that this plugin fits you needs: it makes me happy..." +msgstr "" + +msgid "Feedback form" +msgstr "Форма за обратна връзка" + +msgid "This form is an easy way to contact the author and to discuss issues/incompatibilities/etc. with him" +msgstr "Тази форма е един лесен начин за връзка с автора и за обсъждане проблеми, несъвместимост и т.н. с него." + +msgid "Contact the author" +msgstr "Свържи се с автора" + +msgid "Your email:" +msgstr "Вашият e-mail:" + +msgid "Useful... so that the author will be able to anwser you." +msgstr "Полезно... за да може автора да се свърже с теб." + +msgid "Your comments:" +msgstr "Вашите коментари:" + +msgid "Please note that additional information on your wordpress installation will be sent to the author in order to help the debugging if needed (such as : the wordpress version, the installed plugins, etc.)" +msgstr "" + +msgid "Send feedback" +msgstr "Изпрати отзив" + +msgid "No email have been provided for the author of this plugin. Therefore, the feedback is impossible" +msgstr "" + +msgid "The feedback has been sent" +msgstr "Отзивът е изпратен!" + +msgid "KB" +msgstr "КБ" + +msgid "MB" +msgstr "МБ" + +msgid "GB" +msgstr "ГБ" + +msgid "Error: %s function is not found" +msgstr "Грешка: %s функция не е намерена" + +msgid "The file %s cannot be read. You should have a problem with file permissions or security restrictions." +msgstr "Файлът %s не може да бъде намерен. Вероятно имате проблем с правата за писане или други ограничения." + +msgid "The folder %s cannot be opened. You should have a problem with folder permissions or security restrictions." +msgstr "Папката %s не може да бъде отворена. Вероятно имате проблем с правата за писане или други ограничения." + +msgid "The file %s cannot be deleted. You should have a problem with file permissions or security restrictions." +msgstr "Файлът %s не може да бъде изтрит. Вероятно имате проблем с правата за писане или други ограничения." + +msgid "An other process is still running (it runs for %s seconds)" +msgstr "Има друг процес все още изпълняващ се процес (изпълнява се от %s сек.)." + +msgid "The file %s cannot be modified/created. You should have a problem with file permissions or security restrictions." +msgstr "Файлът %s не може да бъде променен/създаден. Вероятно имате проблем с правата за писане или други ограничения." + +msgid "The file %s cannot be created. You should have a problem with file permissions or security restrictions." +msgstr "Файлът %s не може да бъде създаден. Вероятно имате проблем с правата за писане или други ограничения." + +msgid "The file %s cannot be compressed." +msgstr "Файлът %s не може да бъде компресиран." + +msgid "The file %s cannot be renamed. You should have a problem with file permissions or security restrictions." +msgstr "Файлът %s не може да бъде преименуван. Вероятно имате проблем с правата за писане или други ограничения." + +msgid "The file %s cannot be modified. You should have a problem with file permissions or security restrictions." +msgstr "Файлът %s не може да бъде променен. Вероятно имате проблем с правата за писане или други ограничения." + diff --git a/core/lang/SL_framework-cs_CZ.mo b/core/lang/SL_framework-cs_CZ.mo new file mode 100644 index 0000000000000000000000000000000000000000..86f1af7b38a2d5bdf46f49bdfb92bdb7cf103896 GIT binary patch literal 13720 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 U)%iPM1bswuQ(\n" +"Last-Translator: david <>\n" +"Last-Translator: MichaelKoci \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%100/10==1 ? 2 : n%10==1 ? 0 : (n+9)%10>3 ? 2 : 1;\n" +"X-Poedit-Language: Czech\n" +"X-Poedit-Country: Czech Republic\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-KeywordsList: __;\n" +"X-Poedit-Basepath: \n" +"X-Poedit-Bookmarks: \n" +"X-Poedit-SearchPath-0: .\n" +"X-Textdomain-Support: yes\n" + +msgid "About..." +msgstr "O pluginu" + +msgid "Settings" +msgstr "Nastavení" + +msgid "Log options" +msgstr "Hlášení nastavení" + +msgid "What is the debug level:" +msgstr "Úroveň vyladění" + +msgid "See the debug logs" +msgstr "Viz. ladicí protokoly" + +msgid "1=log only the critical errors;" +msgstr "1 pouze kritické chyby" + +msgid "2=log only the critical errors and the standard errors;" +msgstr "2 pouze kritické a standartní chyby" + +msgid "3=log only the critical errors, the standard errors and the warnings;" +msgstr "3 pouze kritické chyby, standartní chyby a varování" + +msgid "4=log information;" +msgstr "4 Informace" + +msgid "5=log verbose;" +msgstr "5 podrobnosti" + +msgid "Multisite Management" +msgstr "Multistránková správa" + +msgid "Do you want to allow sub-blogs to modify the translations of the plugins:" +msgstr "Chcete aby subblogy změnily překlad pluginu:" + +msgid "If this option is unchecked, the translation tab won't be displayed in the blog administration panel." +msgstr "Pokud je tato volba zaškrtnuta, nemusí se vám překlad zobrazit v panelu správy blogu." + +msgid "Summary page for the plugins developped with the SL framework" +msgstr "Shrnutí stránky pro pluginy vyvinuté s SL rámci" + +msgid "Plugin name" +msgstr "Název pluginu" + +msgid "Description" +msgstr "Popis" + +msgid "There is a SQL database for this plugin" +msgstr "K dispozici je SQL databáze pro tento plugin" + +msgid "Version: %s by %s" +msgstr "Verze %s by %s" + +msgid "List of SL plugins" +msgstr "Seznam SL pluginů" + +msgid "Parameters of the framework" +msgstr "Parametry rámce" + +msgid "Manage translation of the framework" +msgstr "Správa překladových rámců" + +msgid "The folder %s is not %s !" +msgstr "Složka %s není %s" + +msgid "The file %s is not %s !" +msgstr "Soubor %s není %s" + +msgid "The folder %s does not exists and cannot be created !" +msgstr "Složka %s neexistuje a nemůže být vytvořena!" + +msgid "The file %s does not exists and cannot be created !" +msgstr "Soubor %s neexistuje a nemůže být vytvořen!" + +msgid "There are some issues with folders rights. Please corret them as soon as possible as they could induce bugs and instabilities." +msgstr "Existují některé problémy s právy složek. Prosím opravte je co nejdříve, jinak by mohly vyvolat chyby a nestabilitu." + +msgid "Please see below:" +msgstr "Prosím viz níže" + +msgid "Close popup" +msgstr "Zavřít okno" + +msgid "Here, you may configure three levels of translations: at the plugin level, at the framework level, and at the dashboard level." +msgstr "Zde se může nastavit tři úrovně překladů: na úrovni pluginu a na úrovni rámce." + +msgid "Please be informed that your current language is %s. Text will be translated if a translation is available." +msgstr "Dovolujeme si Vás upozornit, že váš současný jazyk je %s. Text bude přeložen, pokud je překlad k dispozici." + +msgid "Translations available for this plugin (i.e. %s)" +msgstr "Překlady k dispozici k tomuto pluginu (tj. %s)" + +msgid "Translations available for the SL framework (stored in %s)" +msgstr "Překlady jsou k dispozici pro SL rámce (uložené v %s)" + +msgid "Adding a new translation for this language: %s" +msgstr "Přidání nového překladu pro tento jazyk: %s" + +msgid "Sentence to translate" +msgstr "Přeložit větu" + +msgid "Translation" +msgstr "Překlad" + +msgid "Your name:" +msgstr "Vaše jméno:" + +msgid "(if your name/pseudo is already in the list, there is no need to fill this input)" +msgstr "(pokud vaše jméno / nick je již v seznamu, není potřeba vyplnit toto pole)" + +msgid "Your email or your website:" +msgstr "Váš e-mail nebo vaše webové stránky:" + +msgid "Create the translation files" +msgstr "Vytvoření souborů s překladem." + +msgid "Add a new translation" +msgstr "Přidat nový překlad" + +msgid "Modifying the translation for this language: %s" +msgstr "Úprava překlad pro tento jazyk: %s" + +msgid "Modify the translation files" +msgstr "Upravit překladové soubory" + +msgid "%s sentences have been translated (i.e. %s)." +msgstr "%s věty byly přeloženy (tj.%s)." + +msgid "%s sentences have been translated (i.e. %s) %s %s sentences have to be checked because they are close (but not identical) to those to translate.%s" +msgstr "%s věty byly přeloženy (tj. %s) %s věty %s musí být překontrolovány, protože jsou podobné (ale ne totožné) s těmi přeloženými. %s" + +msgid "The translation %s have been sent" +msgstr "Překlady %s byly odeslány" + +msgid "An error occured sending the email." +msgstr "Došlo k chybě při odesílání e-mailu." + +msgid "Make sure that your wordpress is able to send email." +msgstr "Ujistěte se, že váš wordpress může zasílat e-mail." + +msgid "%s file has been updated for %s" +msgstr "soubor %s byl aktualizován pro %s" + +msgid "%s file has been updated from this file" +msgstr "soubor %s byl aktualizován z tohoto souboru" + +msgid "%s file has been created with a new translation for %s" +msgstr "soubor %s byl vytvořen s novým překladem pro %s" + +msgid "%s file has been created from this file" +msgstr "soubor %s byl vytvořen z tohoto souboru" + +msgid "If you do not want to loose your translations on the next upgrading of this plugin, it is recommended to send the translation files to the author by clicking %s here %s !" +msgstr "Pokud nechcete přijít o své překlady při další modernizaci tohoto pluginu, je doporučeno odeslat překladatelské soubory autorovi kliknutím %s zde %s !" + +msgid "If you do not want to loose your translations on the next upgrading of this plugin, please save them on your hard disk before upgrading and then restore them after the upgrade !" +msgstr "Pokud nechcete přijít o své překlady s další modernizací tohoto pluginu, uložte je na pevném disku před upgradem a pak je obnovte po upgradu!" + +msgid "Summary cached %s" +msgstr "Shrnutí z %s" + +msgid "The sentences used in this plugin are in English. Help the others users using the same language as you by translating this plugin." +msgstr "Věty v tomto pluginu jsou v angličtině. Pomozte prosím s překladem tohoto pluginu." + +msgid "Language" +msgstr "Jazyk" + +msgid "Ratio %" +msgstr "Hodnocení" + +msgid "Translators" +msgstr "Překladatel" + +msgid "This is the default language of the plugin. It cannot be modified." +msgstr "Toto je výchozí jazyk pluginu a může být upraven." + +msgid "Modify" +msgstr "Úpravy" + +msgid "Send to the author of the plugin" +msgstr "Poslat autorovi pluginu" + +msgid "You may add a new translation hereafter (Please note that it is recommended to send your translation to the author so that he would be able to add your translation to the future release of the plugin !)" +msgstr "Můžete přidat nový překlad (Vezměte prosím na vědomí, že se doporučuje poslat svůj překlad autorovi tak že bude moci přidat svůj překlad do budoucího vydání pluginuu!)" + +msgid "Add" +msgstr "Přidat" + +msgid "The 'SL framework' is a framework used for developping many plugins like this one. Thus, if you participate translating the framework, it will be very helpful for a bunch of plugins." +msgstr ""SL rámec" je rámec pro vývoj mnoha pluginů, jako je tento. Proto, pokud se účastníte překladu rámce, bude to velmi užitečné pro spoustu dalších pluginů." + +msgid "Send to the author of the framework" +msgstr "Poslat autorovi rámce" + +msgid "Error: the submitted value is not an integer and thus, the parameter has not been updated!" +msgstr "Chyba: předložená hodnota není číslo a tak parametr není aktualizován!" + +msgid "Error: the submitted string does not match the constrains" +msgstr "Chyba: řetězec neodpovídá" + +msgid "Error: the submitted file can not be uploaded!" +msgstr "Chyba: soubor nelze odeslat!" + +msgid "Error: security issue!" +msgstr "Chyba: chyba zabezpečení!" + +msgid "Parameters" +msgstr "Parametry" + +msgid "Here are the parameters of the plugin. Modify them at will to fit your needs." +msgstr "Zde jsou parametry pluginu. Upravte je tak, aby vyhovovaly vašim potřebám." + +msgid "Here are the parameters of the framework. Modify them at will to fit your needs." +msgstr "Zde jsou parametry rámce. Upravte je tak, aby vyhovovaly vašim potřebám." + +msgid "Values" +msgstr "Hodnoty" + +msgid "Warning: some characters have been removed because they are not allowed here" +msgstr "Upozornění: Některé znaky byly odstraněny, protože zde nejsou povoleny" + +msgid "(integer)" +msgstr "(integer)" + +msgid "(If you want to delete this file, please check this box %s)" +msgstr "(Pokud chcete smazat tento soubor, prosím, zaškrtněte toto políčko %s)" + +msgid "Update" +msgstr "Aktualizovat" + +msgid "Some parameters have not been updated due to errors (see below)!" +msgstr "Některé parametry nebyly aktualizovány kvůli chybám (viz níže),!" + +msgid "Parameters have been updated (but with some warnings)!" +msgstr "Parametry byly aktualizovány (ale existují nějaká varování)!" + +msgid "Parameters have been updated successfully!" +msgstr "Parametry byly úspěšně aktualizovány." + +msgid "Parameters have been reset to their default values!" +msgstr "Parametry byly resetovány" + +msgid "Plugins that you may install" +msgstr "Pluginy, které můžete nainstalovat" + +msgid "The following plugins have been developed by the author and are not yet installed:" +msgstr "Následující pluginy byly vyvinuty autorem a jsou dosud nenainstalovány:" + +msgid "Plugin not yet installed" +msgstr "Plugin není nainstalován" + +msgid "Description and Screenshots" +msgstr "Popis a screeny" + +msgid "All author's plugins have been installed. Thank you!" +msgstr "Všechny autorovy pluginy byly nainstalovány. Děkujeme!" + +msgid "Installed plugins" +msgstr "Instalované pluginy" + +msgid "You have already installed the following author's plugins:" +msgstr "Již jste nainstalovali následující autorovy pluginy:" + +msgid "Plugin already installed" +msgstr "Plugin je již nainstalován." + +msgid "The Wordpress page: %s" +msgstr "Stránka Wordpressu: %s" + +msgid "An Unexpected HTTP Error occurred during the API request." +msgstr "Neočekávané HTTP Chyba během API žádosti." + +msgid "Last update:" +msgstr "Poslední aktualizace:" + +msgid "Rating: %s" +msgstr "Hodnocení: %s" + +msgid "by %s persons" +msgstr "z%s osob" + +msgid "Number of download:" +msgstr "Počet stažení:" + +msgid "Filter: %s" +msgstr "Filtr: %s" + +msgid "%s of %s" +msgstr "%s z %s" + +msgid "Current Page" +msgstr "Tato stránka" + +msgid "Donate" +msgstr "Podpořit" + +msgid "Feedback form" +msgstr "Formulář" + +msgid "This form is an easy way to contact the author and to discuss issues/incompatibilities/etc. with him" +msgstr "Tento formulář je snadný způsob jak kontaktovat autora" + +msgid "Contact the author" +msgstr "Kontaktovat autora" + +msgid "Your email:" +msgstr "Váš email:" + +msgid "Useful... so that the author will be able to anwser you." +msgstr "Výhodné ... autor vám bude moci odpovědět.." + +msgid "Your comments:" +msgstr "Vaše komentáře:" + +msgid "Please note that additional information on your wordpress installation will be sent to the author in order to help the debugging if needed (such as : the wordpress version, the installed plugins, etc.)" +msgstr "Vezměte prosím na vědomí, že informace o vaší instalaci wordpressu budou zaslány autorovi, aby mu to pomohlo při ladění v případě potřeby (např.: verze wordpress, instalované pluginy, atd.)" + +msgid "Send feedback" +msgstr "Poslat zpětnou vazbu" + +msgid "No email have been provided for the author of this plugin. Therefore, the feedback is impossible" +msgstr "Žádný e-mail byly autora tohoto pluginu nebyl nalezen. Proto je zpětná vazba nemožná." + +msgid "The feedback has been sent" +msgstr "Zpětná vazba byla odeslána" + +msgid "KB" +msgstr "KB" + +msgid "MB" +msgstr "MB" + +msgid "GB" +msgstr "GB" + +msgid "Error: %s function is not found" +msgstr "Chyba: %s Funkce nenalezena" + +msgid "The file %s cannot be read. You should have a problem with file permissions or security restrictions." +msgstr "Soubor %s nelze přečíst." + +msgid "The folder %s cannot be opened. You should have a problem with folder permissions or security restrictions." +msgstr "Složka %s nelze otevřít." + +msgid "The file %s cannot be deleted. You should have a problem with file permissions or security restrictions." +msgstr "Soubor %s nelze odstranit." + +msgid "An other process is still running (it runs for %s seconds)" +msgstr "Jiný proces stále běží (spustí se za %s sekund)" + +msgid "The file %s cannot be modified/created. You should have a problem with file permissions or security restrictions." +msgstr "Soubor %s nelze změnit / vytvořit" + +msgid "The file %s cannot be created. You should have a problem with file permissions or security restrictions." +msgstr "Soubor %s nelze vytvořit." + +msgid "The file %s cannot be compressed." +msgstr "Soubor %s nelze komprimovat." + +msgid "The file %s cannot be renamed. You should have a problem with file permissions or security restrictions." +msgstr "Soubor %s nelze přejmenovat." + +msgid "The file %s cannot be modified. You should have a problem with file permissions or security restrictions." +msgstr "Soubor %s nelze změnit." + +msgid "Modify translations" +msgstr "Modofikovat preklady" + +msgid "Send translation" +msgstr "Odeslat Překlad" + +msgid "Confirmation" +msgstr "Potvrzení" + +msgid "Add new" +msgstr "Přidar nový" + +msgid "(Delete)" +msgstr "(Smaž)" + +msgid "Reset to default values" +msgstr "Nastavit základní hodnoty" + +msgid "If you like the plugin, do not hesitate to donate. Please note that this plugin is developed in my spare time for free." +msgstr "Pokud se vám líbí plugin, neváhejte darovat. Vezměte prosím na vědomí, že tento plugin je vyvinut ve svém volném čase zdarma." + +msgid "This is not mandatory! but it may be a sign that this plugin fits you needs: it makes me happy..." +msgstr "To není povinné! ale může to být známkou toho, že tento plugin se hodí, co vyžaduje: to mě dělá šťastným ..." + diff --git a/core/lang/SL_framework-de_DE.mo b/core/lang/SL_framework-de_DE.mo new file mode 100644 index 0000000000000000000000000000000000000000..24630d94a507bf5ae8ed4f4f448d7bdc0958a6ee GIT binary patch literal 17120 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 B4ORdE literal 0 HcmV?d00001 diff --git a/core/lang/SL_framework-de_DE.po b/core/lang/SL_framework-de_DE.po new file mode 100644 index 0000000..27a4a00 --- /dev/null +++ b/core/lang/SL_framework-de_DE.po @@ -0,0 +1,453 @@ +msgid "" +msgstr "" +"Generated: SL Framework (http://www.sedlex.fr)\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2014-02-18T15:48:45+00:00\n" +"Last-Translator: reitermarkus \n" +"Last-Translator: ThorstenKallnischkies \n" +"Last-Translator: blog.xmee.de \n" +"Last-Translator: agent \n" +"Last-Translator: MathiasS. <>\n" +"Last-Translator: Mathias <>\n" +"Last-Translator: FarChris \n" +"Last-Translator: Calogero \n" +"Last-Translator: ziix.de \n" +"Last-Translator: la \n" +"Last-Translator: HenningKlocke \n" +"Last-Translator: DL8AAP \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Poedit-Language: German\n" +"X-Poedit-Country: Germany\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-KeywordsList: __;\n" +"X-Poedit-Basepath: \n" +"X-Poedit-Bookmarks: \n" +"X-Poedit-SearchPath-0: .\n" +"X-Textdomain-Support: yes\n" + +msgid "About..." +msgstr "Über ..." + +msgid "Settings" +msgstr "Einstellungen" + +msgid "Log options" +msgstr "Log-Optionen" + +msgid "What is the debug level:" +msgstr "Debug-Level" + +msgid "See the debug logs" +msgstr "Debug-Logs ansehen" + +msgid "1=log only the critical errors;" +msgstr "1 = nur kritische Fehler aufzeichnen" + +msgid "2=log only the critical errors and the standard errors;" +msgstr "2 = nur kritische Fehler und Standardfehler aufzeichnen" + +msgid "3=log only the critical errors, the standard errors and the warnings;" +msgstr "3 = nur kritische Fehler, Standardfehler und Warnungen aufzeichnen" + +msgid "4=log information;" +msgstr "4 = Log-Information" + +msgid "5=log verbose;" +msgstr "5 = Log aufzeichnen mit gleichzeitiger Ausgabe auf den Bildschirm" + +msgid "Multisite Management" +msgstr "Mehrere Webseiten managen" + +msgid "Do you want to allow sub-blogs to modify the translations of the plugins:" +msgstr "Möchten Sie, dass Unter-Blogs die Übersetzungen der Plugins verändern?" + +msgid "If this option is unchecked, the translation tab won't be displayed in the blog administration panel." +msgstr "Wenn diese Option nicht aktiviert ist, wird der Übersetzungs-Tab auf der Blog-Administrations-Seite ausgeblendet." + +msgid "Summary page for the plugins developped with the SL framework" +msgstr "Zusammenfassung für Plugins, die mit dem SL Framework entwickelt wurden" + +msgid "Plugin name" +msgstr "Plugin-Name" + +msgid "Description" +msgstr "Beschreibung" + +msgid "There is a SQL database for this plugin" +msgstr "SQL-Datenbank für dieses Plugin existiert" + +msgid "Version: %s by %s" +msgstr "Version: %s von %s" + +msgid "List of SL plugins" +msgstr "Liste der SL Plugins" + +msgid "Parameters of the framework" +msgstr "Framework - Einstellungen" + +msgid "Manage translation of the framework" +msgstr "Übersetzung des Frameworks verwalten" + +msgid "The folder %s is not %s !" +msgstr "Der Ordner %s ist nicht %s" + +msgid "The file %s is not %s !" +msgstr "Die Datei %s ist nicht %s" + +msgid "The folder %s does not exists and cannot be created !" +msgstr "Das Verzeichnis %s existiert nicht und kann nicht angelegt werden!" + +msgid "The file %s does not exists and cannot be created !" +msgstr "Die Datei %s existiert nicht und kann nicht angelegt werden!" + +msgid "There are some issues with folders rights. Please corret them as soon as possible as they could induce bugs and instabilities." +msgstr "Es gibt probleme mit Berechtigungen von Verzeichnissen. Bitte beheben Sie sie schnellstmöglich, weil sie instabiles Verhalten Ihrer Webseite bewirken können." + +msgid "Please see below:" +msgstr "Siehe unten:" + +msgid "Close popup" +msgstr "Pop-Up schließen" + +msgid "Here, you may configure three levels of translations: at the plugin level, at the framework level, and at the dashboard level." +msgstr "Hier kannst du drei Ebenen der Übersetzung einstellen: Auf Plugin Ebene, auf Framework Ebene und auf Dashboard Ebene." + +msgid "Please be informed that your current language is %s. Text will be translated if a translation is available." +msgstr "Bitte nehme zur Kenntnis das deine gegenwärtige Sprache %s ist. Der Text wird übersetzt sobald eine Übersetzung zur Verfügung steht." + +msgid "If you want to modify the language, please go in %s and find %s or %s. The second argument is your language and you may modify it as you want." +msgstr "Wenn du die Sprache ändern willst, gehe bitte in %s und finde %s oder %s. Das zweite Argument ist die Sprache und könnte geändert werden." + +msgid "Translations available for this plugin (i.e. %s)" +msgstr "Übersetzungen für dieses Plugin (%s) verfügbar" + +msgid "Translations available for the SL framework (stored in %s)" +msgstr "Übersetzungen für das SL Framework verfügbar (gespeichert in %s)" + +msgid "Adding a new translation for this language: %s" +msgstr "Eine neue Übersetzung für folgende Sprache hinzufügen: %s" + +msgid "Sentence to translate" +msgstr "Satz, der zu übersetzen ist" + +msgid "Translation" +msgstr "Übersetzung" + +msgid "Your name:" +msgstr "Name:" + +msgid "(if your name/pseudo is already in the list, there is no need to fill this input)" +msgstr "( falls dein Name/ Pseudonym bereits in der Liste ist, muss dieses Feld nicht ausgefüllt werden)" + +msgid "Your email or your website:" +msgstr "Deine Email oder Webseite:" + +msgid "Create the translation files" +msgstr "Übersetzungs-Dateien erzeugen" + +msgid "Add a new translation" +msgstr "Eine neue Übersetzung hinzufügen" + +msgid "Modifying the translation for this language: %s" +msgstr "Ändern Sie die Übersetzungs-Dateien für folgende Sprache: %s" + +msgid "Modify the translation files" +msgstr "Ändern Sie die Übersetzungs-Dateien" + +msgid "Modify translations" +msgstr "Ändern Sie die Übersetzungen." + +msgid "%s sentences have been translated (i.e. %s)." +msgstr "%s Sätze wurden übersetzt (z.B. %s )" + +msgid "%s sentences have been translated (i.e. %s) %s %s sentences have to be checked because they are close (but not identical) to those to translate.%s" +msgstr "%s Sätze wurden bereits übersetzt ( z.B. %s ) %s %s Sätze müssen korrigiert werden, weil sie nur annähernd richtig übersetzt wurden.%s" + +msgid "The translation %s have been sent" +msgstr "Die Übersetzung %s wurde verschickt" + +msgid "An error occured sending the email." +msgstr "Ein Fehler trat beim Verschicken der Mail auf." + +msgid "Make sure that your wordpress is able to send email." +msgstr "Bitte stellen Sie sicher, dass WordPress Mails verschicken kann." + +msgid "Send translation" +msgstr "Übersetzung verschicken." + +msgid "%s file cannot be created for %s as there is no translated sentence. Please, translate at least one sentence to create a file" +msgstr "%s Datei kann nicht für %s erstellt werden. Bitte übersetze mindestens einen Satz!" + +msgid "%s file has been updated for %s" +msgstr "Datei %s wurde durch %s aktualisiert" + +msgid "%s file has been updated from this file" +msgstr "%s Datei wurde aktualisiert aus dieser Datei" + +msgid "%s file has been created with a new translation for %s" +msgstr "%s Datei wurde erzeugt mit neuer Übersetzung für %s" + +msgid "%s file has been created from this file" +msgstr "%s Datei wurde erzeugt aus dieser Datei" + +msgid "If you do not want to loose your translations on the next upgrading of this plugin, it is recommended to send the translation files to the author by clicking %s here %s !" +msgstr "Wenn du nicht willst das die Übersetzung mit der nächsten Aktualisierung dieses Plugins verloren geht, wird empfohlen die Übersetzungsdatei an den Autor des Plugins zu schicken in dem du %s here %s drückst." + +msgid "If you do not want to loose your translations on the next upgrading of this plugin, please save them on your hard disk before upgrading and then restore them after the upgrade !" +msgstr "Wenn du nicht willst das die Übersetzung mit der nächsten Aktualisierung dieses Plugins verloren geht, speichere sie bitte auf deiner Festplatte bevor du das Plugin aktualisert und stelle sie nach der Aktualisierung wieder her!" + +msgid "Confirmation" +msgstr "Bestätigung" + +msgid "Summary cached %s" +msgstr "Zusammenfassung gecached %s" + +msgid "The sentences used in this plugin are in English. Help the others users using the same language as you by translating this plugin." +msgstr "Die Sätze, die in diesem Plugin benutzt werden, sind in Englisch. Helfen Sie anderen Benutzern, die die gleiche Sprache wie Sie sprechen, indem Sie dieses Plugin übersetzen." + +msgid "This plugin is available in %s languages." +msgstr "Dieses Plugin ist in %s Sprachen verfügbar." + +msgid "There are %s sentences to be translated in this plugin." +msgstr "%s Sätze müssen in diesem Plugin noch übersetzt werden." + +msgid "Language" +msgstr "Sprache" + +msgid "Ratio %" +msgstr "Verhältnis %" + +msgid "Translators" +msgstr "Übersetzer" + +msgid "This is the default language of the plugin. It cannot be modified." +msgstr "Dies ist die Standard-Sprache des Plugins. Sie kann nicht geändert werden." + +msgid "Modify" +msgstr "Ändern" + +msgid "Send to the author of the plugin" +msgstr "An den Autor des Plugins senden" + +msgid "You may add a new translation hereafter (Please note that it is recommended to send your translation to the author so that he would be able to add your translation to the future release of the plugin !)" +msgstr "Sie können hier eine neue Übersetzung hinzufügen ( bitte beachten Sie, dass Sie ihre Übersetzung auch an den Autor senden, damit die Übersetzung für zukünftige Veröffentlichungen verwendet werden kann! )" + +msgid "Add" +msgstr "Hinzufügen" + +msgid "The 'SL framework' is a framework used for developping many plugins like this one. Thus, if you participate translating the framework, it will be very helpful for a bunch of plugins." +msgstr "Das "SL Framework" ist ein Framework, welches benutzt wird, um viele Plugins wie dieses hier zu entwickeln. Falls Sie sich entscheiden, dieses Framework zu übersetzen, helfen Sie einer Menge an Plugins." + +msgid "There is %s languages supported for the 'SL framework'." +msgstr "Es sind %s Sprachen für das "SL Framework" verfügbar." + +msgid "There is %s sentence to be translated in the framework." +msgstr "Es sind noch %s Sätze im Framework zu übersetzen." + +msgid "Send to the author of the framework" +msgstr "An den Autor des Frameworks senden" + +msgid "Add new" +msgstr "Neu hinzufügen." + +msgid "Error: the submitted value is not an integer and thus, the parameter has not been updated!" +msgstr "Fehler: der übergebene Wert ist nicht ganzzahlig (Integer), die Parameter wurden nicht aktualisiert!" + +msgid "Error: the submitted string does not match the constrains" +msgstr "Fehler: Die Eingabe stimmt nicht mit den Anforderungen überein" + +msgid "Error: the submitted file can not be uploaded!" +msgstr "Fehler! Die abgeschickte Datei kann nicht hochgeladen werden" + +msgid "Error: security issue!" +msgstr "Fehler! Sicherheitsproblem!" + +msgid "Parameters" +msgstr "Parameter" + +msgid "Here are the parameters of the plugin. Modify them at will to fit your needs." +msgstr "Dies sind die Plugin-Parameter. Sie können sie nach belieben modifizieren, um sie Ihren Bedürfnissen anzupassen" + +msgid "Here are the parameters of the framework. Modify them at will to fit your needs." +msgstr "Dies sind die Framework-Parameter. Sie können sie nach belieben modifizieren, um sie Ihren Bedürfnissen anzupassen" + +msgid "(Delete)" +msgstr "(Löschen)" + +msgid "Values" +msgstr "Werte" + +msgid "Warning: some characters have been removed because they are not allowed here" +msgstr "Warnung: Einige Zeichen wurden entfernt weil sie bei dieser Eingabe nicht erlaubt sind.." + +msgid "(integer)" +msgstr "(Integer)" + +msgid "(If you want to delete this file, please check this box %s)" +msgstr "(Wenn Sie diese Datei löschen wollen, setzen Sie hier einen Haken: %s)" + +msgid "Update" +msgstr "Aktualisierung" + +msgid "Reset to default values" +msgstr "Auf Standartwerde zurücksetzen" + +msgid "Some parameters have not been updated due to errors (see below)!" +msgstr "Einige Parameter wurden wegen Fehlern nicht aktualisiert (siehe unten)!" + +msgid "Parameters have been updated (but with some warnings)!" +msgstr "Parameter wurden aktualisiert (mit Warnungen)" + +msgid "Parameters have been updated successfully!" +msgstr "Parameter wurden erfolgreich aktualisiert." + +msgid "Parameters have been reset to their default values!" +msgstr "Parameter wurden auf Standartwerte zurückgesetzt." + +msgid "Plugins that you may install" +msgstr "Plugins, die Sie installieren können" + +msgid "The following plugins have been developed by the author and are not yet installed:" +msgstr "Die folgenden Plugins von diesem Autor sind noch nicht installiert" + +msgid "Plugin not yet installed" +msgstr "Plugin ist noch nicht installiert" + +msgid "Description and Screenshots" +msgstr "Beschreibung und Screenshots" + +msgid "All author's plugins have been installed. Thank you!" +msgstr "Alle Plugins des Autoren wurden installiert. Vielen Dank!" + +msgid "Installed plugins" +msgstr "Installierte Plugins" + +msgid "You have already installed the following author's plugins:" +msgstr "Sie haben bereits Plugins des folgenden Autoren installiert:" + +msgid "Plugin already installed" +msgstr "Plugin schon installiert" + +msgid "The Wordpress page: %s" +msgstr "Wordpress-Seite: %s" + +msgid "An Unexpected HTTP Error occurred during the API request." +msgstr "Ein unerwarteter HTTP Fehler ist während der API-Anfrage aufgetreten." + +msgid "Last update:" +msgstr "Letzte Aktualisierung:" + +msgid "Rating: %s" +msgstr "Bewertung: %s" + +msgid "by %s persons" +msgstr "von %s Personen" + +msgid "Number of download:" +msgstr "Anzahl der Downloads:" + +msgid "Filter: %s" +msgstr "Filter: %s" + +msgid "%s of %s" +msgstr "%s von %s" + +msgid "Current Page" +msgstr "Aktuelle Seite" + +msgid "Donate" +msgstr "Spenden" + +msgid "If you like the plugin, do not hesitate to donate. Please note that this plugin is developed in my spare time for free." +msgstr "Wenn dir das Plugin gefällt, zögere nicht zu spenden. Bitte beachte das dieses Plugin in meiner Freizeit entwickelt wurde und kostenlos zur Verfügung steht." + +msgid "This is not mandatory! but it may be a sign that this plugin fits you needs: it makes me happy..." +msgstr "Dies ist zwar keine Pflicht, wäre aber auch ein Indikator für mich, ob das Plugin eure Bedürfnisse befriedigt. Ganz nebenbei würde ich mich auch darüber freuen." + +msgid "Feedback form" +msgstr "Feedback-Formular" + +msgid "This form is an easy way to contact the author and to discuss issues/incompatibilities/etc. with him" +msgstr "Dieses Formular ist eine einfache Möglichkeit, Kontakt mit dem Autor aufzunehmen und Probleme, Inkompatibilitäten etc. mit ihm zu diskutieren" + +msgid "Contact the author" +msgstr "Den Autor kontaktieren" + +msgid "Your email:" +msgstr "Email-Adresse:" + +msgid "Useful... so that the author will be able to anwser you." +msgstr "Hilfreich, damit der Autor Sie kontaktieren kann." + +msgid "Your comments:" +msgstr "Ihre Kommentare:" + +msgid "Please note that additional information on your wordpress installation will be sent to the author in order to help the debugging if needed (such as : the wordpress version, the installed plugins, etc.)" +msgstr "Bitte nehmen Sie zur Kenntnis, dass zusätzliche Informationen an den Autor geschickt werden, wie z.B. WordPress-Version, installierte Plugins, etc. Diese Informationen werden benötigt, um Fehler zu finden." + +msgid "Send feedback" +msgstr "Feedback senden" + +msgid "No email have been provided for the author of this plugin. Therefore, the feedback is impossible" +msgstr "Es wurde keine Email von diesem Autor hinterlegt. Es ist leider kein Feedback möglich." + +msgid "The feedback has been sent" +msgstr "Feedback wurde gesendet" + +msgid "KB" +msgstr "KB" + +msgid "MB" +msgstr "MB" + +msgid "GB" +msgstr "GB" + +msgid "Error: %s function is not found" +msgstr "Fehler: Funktion %s nicht gefunden" + +msgid "The file %s cannot be read. You should have a problem with file permissions or security restrictions." +msgstr "Die Datei %s kann nicht gelesen werden. Überprüfen Sie die Datei-Berechtigungen." + +msgid "The folder %s cannot be opened. You should have a problem with folder permissions or security restrictions." +msgstr "Das Verzeichnis %s kann nicht umbenannt werden. Überprüfen Sie die Verzeichnis-Berechtigungen." + +msgid "The file %s cannot be deleted. You should have a problem with file permissions or security restrictions." +msgstr "Die Datei %s kann nicht umbenannt werden. Überprüfen Sie die Datei-Berechtigungen." + +msgid "An other process is still running (it runs for %s seconds)" +msgstr "Ein anderer Prozess wird gerade ausgeführt (noch %s Sekunden)" + +msgid "The file %s cannot be modified/created. You should have a problem with file permissions or security restrictions." +msgstr "Die Datei %s kann nicht erstellt/geändert werden. Überprüfen Sie die Datei-Berechtigungen." + +msgid "The file %s cannot be created. You should have a problem with file permissions or security restrictions." +msgstr "Die Datei %s kann nicht erstellt werden. Überprüfen Sie die Datei-Berechtigungen." + +msgid "The file %s cannot be compressed." +msgstr "Die Datei %s kann nicht komprimiert werden." + +msgid "The file %s cannot be renamed. You should have a problem with file permissions or security restrictions." +msgstr "Die Datei %s kann nicht umbenannt werden. Kontrollieren Sie die Rechte der Datei." + +msgid "The file %s cannot be modified. You should have a problem with file permissions or security restrictions." +msgstr "Die Datei %s kann nicht geändert werden. Überprüfen Sie die Datei-Berechtigungen." + +msgid "For now, you have installed %s plugins including %s plugins developped with the SedLex's framework" +msgstr "Bis jetzt hast Du %s Plugins installiert inclusive %s Plugins, die mit SedLex's framework entwickelt wurden." + +msgid "The core plugin is located at %s" +msgstr "Das Hauptplugin ist zu finden unter %s." + +msgid "The following plugins have been developed by the author and are not yet been installed:" +msgstr "Die folgenden Plugins von diesem Autor sind noch nicht installiert:" + +msgid "The number of occurrence of %s does not match in both string. Please note that the string %s will be replaced with a contextual string." +msgstr "Die Häufigkeit des Vorkommens von %s stimmt in beiden Strings nicht überein. Beachten Sie dass der String %s durch einen kontext bezogen String ersetzt wird." + diff --git a/core/lang/SL_framework-el_GR.mo b/core/lang/SL_framework-el_GR.mo new file mode 100644 index 0000000000000000000000000000000000000000..c7928fc48f04e791d369cfe5a88eb2c30376c441 GIT binary patch literal 6494 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 literal 0 HcmV?d00001 diff --git a/core/lang/SL_framework-el_GR.po b/core/lang/SL_framework-el_GR.po new file mode 100644 index 0000000..bfb7205 --- /dev/null +++ b/core/lang/SL_framework-el_GR.po @@ -0,0 +1,236 @@ +msgid "" +msgstr "" +"Generated: SL Framework (http://www.sedlex.fr)\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2014-02-24T14:59:14+00:00\n" +"Last-Translator: JackGarivaldis \n" +"Last-Translator: Prokopis \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Poedit-Language: Greek\n" +"X-Poedit-Country: Greece\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-KeywordsList: __;\n" +"X-Poedit-Basepath: \n" +"X-Poedit-Bookmarks: \n" +"X-Poedit-SearchPath-0: .\n" +"X-Textdomain-Support: yes\n" + +msgid "About..." +msgstr "Σχετικά..." + +msgid "Settings" +msgstr "Ρυθμίσεις" + +msgid "Summary page for the plugins developped with the SL framework" +msgstr "Όλα τα πρόσθετα που έχουν δημιουργηθεί με χρήση του SL framework" + +msgid "For now, you have installed %d plugins including %d plugins developped with the 'SL framework':" +msgstr "Για την ώρα, έχετε εγκαταστήσει % plugins συμπεριλαμβανομένων % plugins που έχει το πλαίσιο 'SL'" + +msgid "Plugin name" +msgstr "Όνομα Προσθέτου" + +msgid "Description" +msgstr "Περιγραφή" + +msgid "Version: %s by %s" +msgstr "Έκδοση: %s από %s" + +msgid "List of SL plugins" +msgstr "Κατάλογος προσθέτων που έχουν δημιουργηθεί με χρήση του SL framework" + +msgid "Parameters of the framework" +msgstr "Παράμετροι του SL framework" + +msgid "Manage translation of the framework" +msgstr "Διαχείριση μετάφρασης του SL framework" + +msgid "KB" +msgstr "ΚΒ" + +msgid "MB" +msgstr "ΜΒ" + +msgid "GB" +msgstr "GB" + +msgid "Parameters" +msgstr "Παράμετροι" + +msgid "Values" +msgstr "Τιμές" + +msgid "Update" +msgstr "Ενημέρωση" + +msgid "Translation" +msgstr "Μετάφραση" + +msgid "Your name:" +msgstr "Το όνομά σας:" + +msgid "Your email or your website:" +msgstr "Το email ή την ιστοσελίδα σας:" + +msgid "Plugin" +msgstr "Plugin" + +msgid "Language" +msgstr "Γλώσσα" + +msgid "Information" +msgstr "Πληροφορίες" + +msgid "%s sentences have been translated (i.e. %s)." +msgstr "%s προτάσεις έχουν ματαφραστεί (π.χ. %s)." + +msgid "Delete" +msgstr "Διαγραφή" + +msgid "New translations are available" +msgstr "Υπάρχουν νέες μεταφράσεις" + +msgid "Updates of translations are available" +msgstr "Υπάρχουν ανανεώσεις μεταφράσεων" + +msgid "What are the differences between these two files?" +msgstr "Ποιες είναι οι διαφορές μεταξύ αυτών των δυο αρχείων;" + +msgid "Old sentence" +msgstr "Παλιά πρόταση" + +msgid "New sentence" +msgstr "Νέα Πρόταση" + +msgid "To replace?" +msgstr "Ν' αντικαταστήσετε;" + +msgid "Merge" +msgstr "Συγχώνεψη" + +msgid "The translation %s have been sent" +msgstr "Οι μεταφράσεις %s έχουν αποσταλεί." + +msgid "Make sure that your wordpress is able to send email." +msgstr "Σιγουρευτείτε ότι το Wordpress μπορεί να στείλει ηλεκτρονικά μηνύματα (email)." + +msgid "Ratio %" +msgstr "Αναλογία %" + +msgid "Translators" +msgstr "Μεταφραστές" + +msgid "This is the default language of the plugin. It cannot be modified." +msgstr "Αυτή είναι η προεπιλεγμένη γλώσσα για το plugin. Δεν μπορεί να αλλαχτεί." + +msgid "Modify" +msgstr "Μεταρυθμίστε" + +msgid "Send to the author of the plugin" +msgstr "Στείλτε το στον κατασκευαστή του plugin" + +msgid "Add a new translation" +msgstr "Προσθέστε μια νέα μετάφραση" + +msgid "You may add a new translation hereafter (Please note that it is recommended to send your translation to the author so that he would be able to add your translation to the future release of the plugin !)" +msgstr "Μπορείτε να προσθέσετε μια νέα μετάφραση από εδώ και στο εξής (Παρακαλείστε να στείλετε τη μετάφρασή σας στον κατασκευαστή για να μπορέσει να την προσθέσει σε μελλοντικές αλλαγές του plugin)" + +msgid "Add" +msgstr "Προσθήκη" + +msgid "Feedback form" +msgstr "Φόρμα αναπληροφόρησης" + +msgid "Contact the author" +msgstr "Επικοινωνήστε με τον κατασκευαστή" + +msgid "Your email:" +msgstr "Η ηλεκτρονική σας διεύθυνση:" + +msgid "Your comments:" +msgstr "Τα σχόλιά σας;" + +msgid "The Wordpress page: %s" +msgstr "Η σελίδα του Wordpress: %s" + +msgid "An Unexpected HTTP Error occurred during the API request." +msgstr "Παρουσιάστηκε απροσδόκητο σφάλμα HTTP κατά την κλήση του API." + +msgid "Last update:" +msgstr "Τελευταία ενημέρωση:" + +msgid "Rating: %s" +msgstr "Αξιολόγηση: %s" + +msgid "by %s persons" +msgstr "από %s άτομα" + +msgid "Number of download:" +msgstr "Αριθμός του download:" + +msgid "Plugin not yet installed" +msgstr "Το πρόσθετο δεν έχει ακόμα εγκαταστθεί" + +msgid "Installed plugins" +msgstr "Εγκατεστημένα πρόσθετα" + +msgid "Plugin already installed" +msgstr "Το πρόσθετο έχει ήδη εγκατασταθεί." + +msgid "Add new" +msgstr "Προσθήκη νέου" + +msgid "(Delete)" +msgstr "(Διαγραφή)" + +msgid "(integer)" +msgstr "(ακέραιος)" + +msgid "Create the translation files" +msgstr "Δημιουργία των αρχείων μετάφρασης" + +msgid "Modify the translation files" +msgstr "Επεξεργασία των αρχείων μετάφρασης" + +msgid "Modify translations" +msgstr "Επεξεργασία μετάφρασης" + +msgid "Send translation" +msgstr "Αποστολή μετάφρασης" + +msgid "Confirmation" +msgstr "Επιβεβαίωση" + +msgid "Log options" +msgstr "Επιλογές αρχείου καταγραφής" + +msgid "Multisite Management" +msgstr "Διαχείριση εγκατάστασης πολλαπλών σάιτ" + +msgid "The core plugin is located at %s" +msgstr "Το βασικό άρθωμα του προσθέτου είναι εγκατεστημένο στο %s" + +msgid "The folder %s is not %s !" +msgstr "Ο φάκελος %s δεν είναι %s !" + +msgid "The file %s is not %s !" +msgstr "Το αρχείο %s δεν είναι %s !" + +msgid "The folder %s does not exists and cannot be created !" +msgstr "Ο φάκελος %s ΔΕΝ υπάρχει και ΔΕΝ μπορεί να δημιουργηθεί !" + +msgid "The file %s does not exists and cannot be created !" +msgstr "Το αρχείο %s ΔΕΝ υπάρχει και ΔΕΝ μπορεί να δημιουργηθεί !" + +msgid "Please see below:" +msgstr "Σας παρακαλούμε δείτε παρακάτω:" + +msgid "Filter: %s" +msgstr "Φίλτρο: %s" + diff --git a/core/lang/SL_framework-es_ES.mo b/core/lang/SL_framework-es_ES.mo new file mode 100644 index 0000000000000000000000000000000000000000..8fbeff134d8f00a27065be1fc0813ece0bb8066f GIT binary patch literal 16688 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 O@9r^61}sv9*!?eY=2}ev literal 0 HcmV?d00001 diff --git a/core/lang/SL_framework-es_ES.po b/core/lang/SL_framework-es_ES.po new file mode 100644 index 0000000..ea74f1a --- /dev/null +++ b/core/lang/SL_framework-es_ES.po @@ -0,0 +1,445 @@ +msgid "" +msgstr "" +"Generated: SL Framework (http://www.sedlex.fr)\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2013-10-10T15:16:31+00:00\n" +"Last-Translator: IgnacioCalvo \n" +"Last-Translator: Verto \n" +"Last-Translator: SecurityNull \n" +"Last-Translator: RUBEN \n" +"Last-Translator: carlosalberto \n" +"Last-Translator: yorkel <>\n" +"Last-Translator: Aresky \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Poedit-Language: Spanish\n" +"X-Poedit-Country: Spain\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-KeywordsList: __;\n" +"X-Poedit-Basepath: \n" +"X-Poedit-Bookmarks: \n" +"X-Poedit-SearchPath-0: .\n" +"X-Textdomain-Support: yes\n" + +msgid "About..." +msgstr "Acerca de..." + +msgid "Settings" +msgstr "Configuración" + +msgid "Log options" +msgstr "Opciones de registro" + +msgid "What is the debug level:" +msgstr "Nivel de depuración:" + +msgid "See the debug logs" +msgstr "Ver registros de depuración" + +msgid "1=log only the critical errors;" +msgstr "1=registrar sólo errores críticos;" + +msgid "2=log only the critical errors and the standard errors;" +msgstr "2=registrar sólo errores críticos y estándar;" + +msgid "3=log only the critical errors, the standard errors and the warnings;" +msgstr "3=registrar sólo errores críticos y estándar y advertencias;" + +msgid "4=log information;" +msgstr "4=registrar información;" + +msgid "5=log verbose;" +msgstr "5=registrar todos los detalles;" + +msgid "Multisite Management" +msgstr "Gestión de Multisitio" + +msgid "Do you want to allow sub-blogs to modify the translations of the plugins:" +msgstr "Desea que los sub-blogs modifiquen las traducciones de los plugins:" + +msgid "If this option is unchecked, the translation tab won't be displayed in the blog administration panel." +msgstr "Si no marca esta opción, la ficha de traducción no se mostrará en el panel de administración del blog." + +msgid "Summary page for the plugins developped with the SL framework" +msgstr "Página resumen de los plugins desarrollados con SL Framework" + +msgid "For now, you have installed %s plugins including %s plugins developped with the SedLex's framework" +msgstr "Por ahora, han instalado plugins de %s incluyendo %s plugins desarrollado con marco de SedLex" + +msgid "The core plugin is located at %s" +msgstr "El plugin de base se encuentra en %s" + +msgid "Plugin name" +msgstr "Nombre del plugin" + +msgid "Description" +msgstr "Descripción" + +msgid "There is a SQL database for this plugin" +msgstr "Hay una base de datos SQL para este plugin" + +msgid "Version: %s by %s" +msgstr "Versión: %s por %s" + +msgid "List of SL plugins" +msgstr "Lista de plugins SL" + +msgid "Parameters of the framework" +msgstr "Parámetros del framework" + +msgid "Manage translation of the framework" +msgstr "Gestionar traducción del framework" + +msgid "The folder %s is not %s !" +msgstr "¡La carpeta %s no es %s!" + +msgid "The file %s is not %s !" +msgstr "¡El fichero %s no es %s!" + +msgid "The folder %s does not exists and cannot be created !" +msgstr "¡La carpeta %s no existe y no puede crearse!" + +msgid "The file %s does not exists and cannot be created !" +msgstr "¡El fichero %s no existe y no puede crearse!" + +msgid "There are some issues with folders rights. Please corret them as soon as possible as they could induce bugs and instabilities." +msgstr "Hay problemas con los permisos de la carpeta. Por favor, corríjalos lo antes posible pues podrían producir errores e inestabilidades." + +msgid "Please see below:" +msgstr "Por favor, ver más abajo:" + +msgid "Close popup" +msgstr "Cerrar elemento emergente" + +msgid "Here, you may configure three levels of translations: at the plugin level, at the framework level, and at the dashboard level." +msgstr "Aquí se pueden configurar tres niveles de traducción: Nivel de plugin, de framework y de escritorio." + +msgid "Please be informed that your current language is %s. Text will be translated if a translation is available." +msgstr "Tenga en cuenta que su lenguaje actual es %s. El texto será traducido si una existe traducción a dicho idioma." + +msgid "If you want to modify the language, please go in %s and find %s or %s. The second argument is your language and you may modify it as you want." +msgstr "Si desea modificar el idioma, por favor vaya a %s y encuentre %s o %s. El segundo argumento es su idioma y puede modificarlo como quiera." + +msgid "Translations available for this plugin (i.e. %s)" +msgstr "Traducciones disponibles para el plugin %s" + +msgid "Translations available for the SL framework (stored in %s)" +msgstr "Traducciones disponibles para el framework (Almacenadas en SL %s)" + +msgid "Adding a new translation for this language: %s" +msgstr "Añadiendo una nuea traducción para este lenguaje: %s" + +msgid "Sentence to translate" +msgstr "Frase para traducir" + +msgid "Translation" +msgstr "Traducción" + +msgid "Your name:" +msgstr "Su nombre:" + +msgid "(if your name/pseudo is already in the list, there is no need to fill this input)" +msgstr "(si su nombre / nick ya está en la lista, no es necesario rellenar esta casilla)" + +msgid "Your email or your website:" +msgstr "Su email o website:" + +msgid "Create the translation files" +msgstr "Crear ficheros de traducción" + +msgid "Add a new translation" +msgstr "Añadir una traducción" + +msgid "Modifying the translation for this language: %s" +msgstr "Modificando la traducción para este lenguaje: %s" + +msgid "The number of occurrence of %s does not match in both string. Please note that the string %s will be replaced with a contextual string." +msgstr "El número de ocurrencia de %s no es igual en ambas cadenas. Tenga en cuenta que la cadena %s se reemplazará por una cadena contextual." + +msgid "Modify the translation files" +msgstr "Modificar los ficheros de traducción" + +msgid "Modify translations" +msgstr "Modificar traducciones" + +msgid "%s sentences have been translated (i.e. %s)." +msgstr "%s frases han sido traducidas (p. ej. %s)." + +msgid "%s sentences have been translated (i.e. %s) %s %s sentences have to be checked because they are close (but not identical) to those to translate.%s" +msgstr "%s frases han sido traducidas (es decir, %s) %s %s frases tienen que ser controlados porque están cerca (pero no idénticos) a aquellos a traducir. %s" + +msgid "The translation %s have been sent" +msgstr "La traducción %s ha sido enviada" + +msgid "An error occured sending the email." +msgstr "Ha ocurrido un error mientras se enviaba el correo electrónico." + +msgid "Make sure that your wordpress is able to send email." +msgstr "Asegúrese de que wordpress es capaz de enviar correo electrónico." + +msgid "Send translation" +msgstr "enviar traduccion" + +msgid "%s file cannot be created for %s as there is no translated sentence. Please, translate at least one sentence to create a file" +msgstr "No se puede crear el archivo %s para %s ya que no hay frases traducidas. Por favor, traducir al menos una frase para crear un archivo" + +msgid "%s file has been updated for %s" +msgstr "%s archivo ha sido actualizado para %s" + +msgid "%s file has been updated from this file" +msgstr "%s archivo ha sido actualizado desde este archivo" + +msgid "%s file has been created with a new translation for %s" +msgstr "%s archivo ha sido creado con una nueva traducción para %s" + +msgid "%s file has been created from this file" +msgstr "%s archivo ha sido creado a partir de este archivo" + +msgid "If you do not want to loose your translations on the next upgrading of this plugin, it is recommended to send the translation files to the author by clicking %s here %s !" +msgstr "Si usted no quiere perder sus traducciones en la próxima actualización de este plugin, se recomienda enviar los archivos de traducción al autor haciendo clic %s aquí %s" + +msgid "If you do not want to loose your translations on the next upgrading of this plugin, please save them on your hard disk before upgrading and then restore them after the upgrade !" +msgstr "Si usted no quiere perder sus traducciones en la próxima actualización de este plugin, por favor guárdelos en su disco duro antes de la actualizar y luego restaurelo después de la actualización" + +msgid "Confirmation" +msgstr "comfirmacio" + +msgid "Summary cached %s" +msgstr "Resumen caché %s" + +msgid "The sentences used in this plugin are in English. Help the others users using the same language as you by translating this plugin." +msgstr "Las frases utilizadas en este plugin son en Inglés. Ayude a otros usuarios que utilizan su mismo idioma a traducirlo." + +msgid "This plugin is available in %s languages." +msgstr "Este plugin está disponible en idiomas de %s." + +msgid "There are %s sentences to be translated in this plugin." +msgstr "Hay %s frases para traducir en este plugin." + +msgid "Language" +msgstr "Lenguaje" + +msgid "Ratio %" +msgstr "Proporción %" + +msgid "Translators" +msgstr "Traductores" + +msgid "This is the default language of the plugin. It cannot be modified." +msgstr "Este es el idioma por defecto del plugin. No se puede modificar." + +msgid "Modify" +msgstr "Modificar" + +msgid "Send to the author of the plugin" +msgstr "Enviar al autor del plugin" + +msgid "You may add a new translation hereafter (Please note that it is recommended to send your translation to the author so that he would be able to add your translation to the future release of the plugin !)" +msgstr "Puede añadir una nueva traducción a continuación (se recomienda enviar su traducción al autor para que pueda incorporarla a futuras actualizaciones del plugin)" + +msgid "Add" +msgstr "Añadir" + +msgid "The 'SL framework' is a framework used for developping many plugins like this one. Thus, if you participate translating the framework, it will be very helpful for a bunch of plugins." +msgstr ""SL framework" es un marco utilizado para el desarrollo de otros plugins como éste. Por tanto, si participa en la traducción del marco, será muy útil para muchos otros plugins." + +msgid "There is %s languages supported for the 'SL framework'." +msgstr "Hay %s idiomas soportados para el marco de la SL." + +msgid "There is %s sentence to be translated in the framework." +msgstr "Hay %s frase a traducir en el marco." + +msgid "Send to the author of the framework" +msgstr "Enviar al autor del framework" + +msgid "Add new" +msgstr "añade nuevo" + +msgid "Error: the submitted value is not an integer and thus, the parameter has not been updated!" +msgstr "Error: El valor enviado no es un número entero y por lo tanto, el parámetro no ha sido actualizado" + +msgid "Error: the submitted string does not match the constrains" +msgstr "Error: La cadena presentada no coincide con la limitada" + +msgid "Error: the submitted file can not be uploaded!" +msgstr "Error: El archivo enviado no se puede subir" + +msgid "Error: security issue!" +msgstr "Error: Problema de seguridad" + +msgid "Parameters" +msgstr "Parámetros" + +msgid "Here are the parameters of the plugin. Modify them at will to fit your needs." +msgstr "Estos son los parámetros del plugin. Modifiquelos a su conveniencia para satisfacer sus necesidades." + +msgid "Here are the parameters of the framework. Modify them at will to fit your needs." +msgstr "Estos son los parámetros del marco. Modifiquelos a su conveniencia para satisfacer sus necesidades." + +msgid "(Delete)" +msgstr "Borrar" + +msgid "Values" +msgstr "Valores" + +msgid "Warning: some characters have been removed because they are not allowed here" +msgstr "Advertencia: Se han eliminado algunos caracteres no permitidos" + +msgid "(integer)" +msgstr "(entero)" + +msgid "(If you want to delete this file, please check this box %s)" +msgstr "(Si quiere borrar este archivo, por favor marque esta casilla%s)" + +msgid "Update" +msgstr "Actualizar" + +msgid "Reset to default values" +msgstr "Restablecer los valores por defecto" + +msgid "Some parameters have not been updated due to errors (see below)!" +msgstr "Algunos parámetros no se han actualizado debido a errores (ver más adelante)" + +msgid "Parameters have been updated (but with some warnings)!" +msgstr "Los parámetros han sido actualizados satisfactoriamente pero con algunas advertencias" + +msgid "Parameters have been updated successfully!" +msgstr "Los parámetros han sido actualizados satisfactoriamente" + +msgid "Parameters have been reset to their default values!" +msgstr "Los parámetros han sido restablecidos a sus valores por defecto" + +msgid "Plugins that you may install" +msgstr "Plugins que puedes instalar" + +msgid "The following plugins have been developed by the author and are not yet installed:" +msgstr "Los siguientes plugins han sido desarrollados por el autor y todavía no se han instalado:" + +msgid "Plugin not yet installed" +msgstr "Plugin no instalado todavía" + +msgid "Description and Screenshots" +msgstr "Descripción y capturas de pantalla" + +msgid "All author's plugins have been installed. Thank you!" +msgstr "Todos los puglins del autor han sido instalados. ¡Gracias!" + +msgid "Installed plugins" +msgstr "Plugins instalados" + +msgid "You have already installed the following author's plugins:" +msgstr "Ya has instalado los siguientes plugins del autor:" + +msgid "Plugin already installed" +msgstr "Plugin ya instalado" + +msgid "The Wordpress page: %s" +msgstr "La página de WordPress: %s" + +msgid "An Unexpected HTTP Error occurred during the API request." +msgstr "Excepción HTTP inesperada durante la petición a la API" + +msgid "Last update:" +msgstr "Última actualización:" + +msgid "Rating: %s" +msgstr "Puntuación: %s" + +msgid "by %s persons" +msgstr "por %s personas" + +msgid "Number of download:" +msgstr "Número de descarga:" + +msgid "Filter: %s" +msgstr "Filtrar: %s" + +msgid "%s of %s" +msgstr "%s de %s" + +msgid "Current Page" +msgstr "Página actual" + +msgid "Donate" +msgstr "Donar" + +msgid "If you like the plugin, do not hesitate to donate. Please note that this plugin is developed in my spare time for free." +msgstr "Si le gusta el plugin, no dude en donar. Tenga en cuenta que este plugin es desarrollado en mi tiempo libre de forma gratuita." + +msgid "This is not mandatory! but it may be a sign that this plugin fits you needs: it makes me happy..." +msgstr "Esto no es obligatorio, pero es otra posible manera de agradecer este trabajo y además me hace más feliz ." + +msgid "Feedback form" +msgstr "Formulario de contacto" + +msgid "This form is an easy way to contact the author and to discuss issues/incompatibilities/etc. with him" +msgstr "Este formulario es una forma sencilla de contactar con el autor y discutir con él problemas, incompatibilidades, etc." + +msgid "Contact the author" +msgstr "Contacte con el autor" + +msgid "Your email:" +msgstr "Su email:" + +msgid "Useful... so that the author will be able to anwser you." +msgstr "Útil para que el autor pueda responderle." + +msgid "Your comments:" +msgstr "Sus comentarios:" + +msgid "Please note that additional information on your wordpress installation will be sent to the author in order to help the debugging if needed (such as : the wordpress version, the installed plugins, etc.)" +msgstr "Tenga en cuenta que la información adicional sobre la instalación de wordpress será enviada al autor con el fin de ayudar a la depuración si es necesario (por ejemplo: la versión de wordpress, los plugins instalados, etc)" + +msgid "Send feedback" +msgstr "Enviar comentarios" + +msgid "No email have been provided for the author of this plugin. Therefore, the feedback is impossible" +msgstr "No se ha proporcionado un correo electrónico para el autor de este plugin." + +msgid "The feedback has been sent" +msgstr "La respuesta ha sido enviada" + +msgid "KB" +msgstr "KB" + +msgid "MB" +msgstr "MB" + +msgid "GB" +msgstr "GB" + +msgid "Error: %s function is not found" +msgstr "Error: la función %s no se encuentra" + +msgid "The file %s cannot be read. You should have a problem with file permissions or security restrictions." +msgstr "El archivo %s no se puede leer. Debe tener un problema con los permisos de losarchivos o las restricciones de seguridad." + +msgid "The folder %s cannot be opened. You should have a problem with folder permissions or security restrictions." +msgstr "La carpeta %s no se puede abrir. Debe tener un problema con los permisos de las carpetas o las restricciones de seguridad." + +msgid "The file %s cannot be deleted. You should have a problem with file permissions or security restrictions." +msgstr "El archivo %s no se puede eliminar. Debe tener un problema con los permisos de los archivos o las restricciones de seguridad." + +msgid "An other process is still running (it runs for %s seconds)" +msgstr "Otro proceso está aún en marcha (se ejecuta en %s segundos)" + +msgid "The file %s cannot be modified/created. You should have a problem with file permissions or security restrictions." +msgstr "El archivo %s no puede ser modificado / creado. Debe tener un problema con los permisos de los archivos o las restricciones de seguridad." + +msgid "The file %s cannot be created. You should have a problem with file permissions or security restrictions." +msgstr "El archivo %s no puede ser creado. Usted debe tener un problema con los permisos de los archivos o las restricciones de seguridad." + +msgid "The file %s cannot be compressed." +msgstr "El archivo %s no se puede comprimir." + +msgid "The file %s cannot be renamed. You should have a problem with file permissions or security restrictions." +msgstr "El archivo %s no se puede renombrar. Debe tener un problema con los permisos de los archivos o las restricciones de seguridad." + +msgid "The file %s cannot be modified. You should have a problem with file permissions or security restrictions." +msgstr "El archivo %s no se puede modificar. Debe tener un problema con los permisos de los archivos o las restricciones de seguridad." + diff --git a/core/lang/SL_framework-es_GT.mo b/core/lang/SL_framework-es_GT.mo new file mode 100644 index 0000000000000000000000000000000000000000..3e9c2b43853e32ae8782242f3ec79cc21dd62f99 GIT binary patch literal 6486 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 HPq+U8DZ&2; literal 0 HcmV?d00001 diff --git a/core/lang/SL_framework-es_GT.po b/core/lang/SL_framework-es_GT.po new file mode 100644 index 0000000..4817df0 --- /dev/null +++ b/core/lang/SL_framework-es_GT.po @@ -0,0 +1,469 @@ +msgid "" +msgstr "" +"Generated: SL Framework (http://www.sedlex.fr)\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2013-04-07T13:54:53+00:00\n" +"Last-Translator: EnriqueBran \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Poedit-Language: Spanish\n" +"X-Poedit-Country: Guatemala\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-KeywordsList: __;\n" +"X-Poedit-Basepath: \n" +"X-Poedit-Bookmarks: \n" +"X-Poedit-SearchPath-0: .\n" +"X-Textdomain-Support: yes\n" + +msgid "About..." +msgstr "Acerca de..." + +msgid "Settings" +msgstr "Configuración" + +msgid "Log options" +msgstr "" + +msgid "What is the debug level:" +msgstr "" + +msgid "See the debug logs" +msgstr "" + +msgid "1=log only the critical errors;" +msgstr "" + +msgid "2=log only the critical errors and the standard errors;" +msgstr "" + +msgid "3=log only the critical errors, the standard errors and the warnings;" +msgstr "" + +msgid "4=log information;" +msgstr "" + +msgid "5=log verbose;" +msgstr "" + +msgid "Multisite Management" +msgstr "" + +msgid "Do you want to allow sub-blogs to modify the translations of the plugins:" +msgstr "" + +msgid "If this option is unchecked, the translation tab won't be displayed in the blog administration panel." +msgstr "" + +msgid "Summary page for the plugins developped with the SL framework" +msgstr "Página de resumen de los plugins desarrollados con SL framework" + +msgid "For now, you have installed %d plugins including %d plugins developped with the 'SL framework':" +msgstr "For ahora, tienes instalado %d plugins incluyendo %d plugins desarrollados con el 'SL framework':" + +msgid "Plugin name" +msgstr "Nombre del Plugin" + +msgid "Description" +msgstr "Descripción" + +msgid "There is a SQL database for this plugin" +msgstr "" + +msgid "Version: %s by %s" +msgstr "Versión: %s por %s" + +msgid "List of SL plugins" +msgstr "Lista de plugins SL" + +msgid "Parameters of the framework" +msgstr "" + +msgid "Manage translation of the framework" +msgstr "Gestionar traducción del framework" + +msgid "The folder %s is not %s !" +msgstr "¡La carpeta %s no es %s !" + +msgid "The file %s is not %s !" +msgstr "¡El archivo %s no es %s !" + +msgid "The folder %s does not exists and cannot be created !" +msgstr "¡La carpeta %s no existe y no puede ser creada!" + +msgid "The file %s does not exists and cannot be created !" +msgstr "¡El archivo %s no existe y no puede ser creado!" + +msgid "There are some issues with folders rights. Please corret them as soon as possible as they could induce bugs and instabilities." +msgstr "Hay algunos problemas con los derechos de las carpetas. Por favor, corrige tan pronto como sea posible, ya que podría provocar a errores e inestabilidad." + +msgid "Please see below:" +msgstr "Por favor, vea abajo:" + +msgid "KB" +msgstr "KB" + +msgid "MB" +msgstr "MB" + +msgid "GB" +msgstr "GB" + +msgid "Error: the submitted value is not an integer and thus, the parameter has not been updated!" +msgstr "¡Error: el valor enviado no es un entero y por lo tanto el parámetro no fue actualizado!" + +msgid "Error: the submitted string does not match the constrains" +msgstr "Error: la cadena enviada no coincide con las limitaciones" + +msgid "Error: the submitted file can not be uploaded!" +msgstr "" + +msgid "Error: security issue!" +msgstr "" + +msgid "Parameters" +msgstr "" + +msgid "Here are the parameters of the plugin. Modify them at will to fit your needs." +msgstr "" + +msgid "Here are the parameters of the framework. Modify them at will to fit your needs." +msgstr "" + +msgid "Values" +msgstr "" + +msgid "Warning: some characters have been removed because they are not allowed here" +msgstr "Advertencia: algunos caracteresse han eliminado porque no son permitidos" + +msgid "(integer)" +msgstr "" + +msgid "(If you want to delete this file, please check this box %s)" +msgstr "" + +msgid "Update" +msgstr "Actualización" + +msgid "Reset to default values" +msgstr "" + +msgid "Some parameters have not been updated due to errors (see below)!" +msgstr "¡Algunos parámetros no se han actualizado debido a errores (ver más abajo)!" + +msgid "Parameters have been updated (but with some warnings)!" +msgstr "¡Los parámetros fueron actualizados (pero con algunas alertas)!" + +msgid "Parameters have been updated successfully!" +msgstr "Los parámetros fueron actualizados correctamente" + +msgid "Parameters have been reset to their default values!" +msgstr "" + +msgid "Here, you may configure three levels of translations: at the plugin level, at the framework level, and at the dashboard level." +msgstr "" + +msgid "Please be informed that your current language is %s. Text will be translated if a translation is available." +msgstr "" + +msgid "If you want to modify the language, please go in %s and find %s or %s. The second argument is your language and you may modify it as you want." +msgstr "" + +msgid "Translations available for this plugin (i.e. %s)" +msgstr "" + +msgid "Translations available for the SL framework (stored in %s)" +msgstr "" + +msgid "Adding a new translation for this language: %s" +msgstr "Agregando una nueva traducción para el lenguaje: %s" + +msgid "Sentence to translate" +msgstr "Frase a traducir" + +msgid "Translation" +msgstr "Traducción" + +msgid "Your name:" +msgstr "Tu nombre:" + +msgid "(if your name/pseudo is already in the list, there is no need to fill this input)" +msgstr "(si tu nombre/pseudonimo ya existe en la lista, no hay necesidad de llenar este campo)" + +msgid "Your email or your website:" +msgstr "Tu email o tu website:" + +msgid "Create the translation files" +msgstr "Crear los archivos de traducción" + +msgid "Modifying the translation for this language: %s" +msgstr "Modificando la traducción para este lenguaje: %s" + +msgid "Modify the translation files" +msgstr "Modificar los archivos de traducción" + +msgid "The file %s cannot be extracted from mail attachments" +msgstr "" + +msgid "The file %s cannot be written in the %s folder" +msgstr "" + +msgid "The file %s has been imported in the %s folder" +msgstr "" + +msgid "Plugin" +msgstr "" + +msgid "Language" +msgstr "Lenguaje" + +msgid "Information" +msgstr "" + +msgid "%s sentences have been translated (i.e. %s)." +msgstr "%s frases han sido traducidas (es decir, %s)." + +msgid "Delete" +msgstr "" + +msgid "See the new translation file and merge" +msgstr "" + +msgid "%s sentences have been newly translated and %s sentences have been modified (the old file has %s translated sentences)." +msgstr "" + +msgid "See the modifications/new translations and Merge" +msgstr "" + +msgid "See the new translations and Merge" +msgstr "" + +msgid "New translations are available" +msgstr "" + +msgid "Updates of translations are available" +msgstr "" + +msgid "What are the differences between these two files?" +msgstr "" + +msgid "Old sentence" +msgstr "" + +msgid "New sentence" +msgstr "" + +msgid "To replace?" +msgstr "" + +msgid "Merge" +msgstr "" + +msgid "%s sentences have been translated (i.e. %s) %s %s sentences have to be checked because they are close (but not identical) to those to translate.%s" +msgstr "" + +msgid "The translation %s have been sent" +msgstr "La traducción %s ha sido enviada" + +msgid "An error occured sending the email." +msgstr "Ocurrió un error enviando el email." + +msgid "Make sure that your wordpress is able to send email." +msgstr "Asegúrese que wordpress es capaz de enviar correo electrónico." + +msgid "%s file cannot be created for %s as there is no translated sentence. Please, translate at least one sentence to create a file" +msgstr "" + +msgid "%s file has been updated for %s" +msgstr "archivo %s fue correctamente actualizado por %s" + +msgid "%s file has been updated from this file" +msgstr "archivo %s ha sido actualizado a partir de este archivo" + +msgid "%s file has been created with a new translation for %s" +msgstr "archivo %s ha sido creado con una nueva traducción de %s" + +msgid "%s file has been created from this file" +msgstr "archivo %s ha sido creado a partir de este archivo" + +msgid "If you do not want to loose your translations on the next upgrading of this plugin, it is recommended to send the translation files to the author by clicking %s here %s !" +msgstr "" + +msgid "If you do not want to loose your translations on the next upgrading of this plugin, please save them on your hard disk before upgrading and then restore them after the upgrade !" +msgstr "" + +msgid "Summary cached %s" +msgstr "" + +msgid "The sentences used in this plugin are in English. Help the others users using the same language as you by translating this plugin." +msgstr "" + +msgid "This plugin is available in %d languages." +msgstr "" + +msgid "There are %d sentences to be translated in this plugin." +msgstr "Hay %d frases para ser traducidas en este plugin." + +msgid "Ratio %" +msgstr "Razón %" + +msgid "Translators" +msgstr "Traductores" + +msgid "This is the default language of the plugin. It cannot be modified." +msgstr "" + +msgid "Modify" +msgstr "Modificar" + +msgid "Send to the author of the plugin" +msgstr "Enviar al autor del plugin" + +msgid "Add a new translation" +msgstr "Agregar una nueva traducción" + +msgid "You may add a new translation hereafter (Please note that it is recommended to send your translation to the author so that he would be able to add your translation to the future release of the plugin !)" +msgstr "Puedes añadir una nueva traducción de aquí en adelante (Ten en cuenta que se recomienda enviar la traducción al autor para que él la añada en la futura versión del plug-in!)" + +msgid "Add" +msgstr "Agregar" + +msgid "The 'SL framework' is a framework used for developping many plugins like this one. Thus, if you participate translating the framework, it will be very helpful for a bunch of plugins." +msgstr "" + +msgid "There is %d languages supported for the 'SL framework'." +msgstr "Hay %d lenguajes soportados par el 'SL framework'." + +msgid "There is %d sentence to be translated in the framework." +msgstr "Hay %d frases para ser traducidas en este framework." + +msgid "Send to the author of the framework" +msgstr "Enviar al autor del framework" + +msgid "Donate" +msgstr "" + +msgid "If you like the plugin, do not hesitate to donate. Please note that this plugin is developed in my spare time for free." +msgstr "" + +msgid "This is not mandatory! but it may be a sign that this plugin fits you needs: it makes me happy..." +msgstr "" + +msgid "Feedback form" +msgstr "" + +msgid "This form is an easy way to contact the author and to discuss issues/incompatibilities/etc. with him" +msgstr "" + +msgid "Contact the author" +msgstr "" + +msgid "Your email:" +msgstr "" + +msgid "Useful... so that the author will be able to anwser you." +msgstr "" + +msgid "Your comments:" +msgstr "Tus comentarios:" + +msgid "Please note that additional information on your wordpress installation will be sent to the author in order to help the debugging if needed (such as : the wordpress version, the installed plugins, etc.)" +msgstr "Tener en cuenta que la información adicional de la instalación de WordPress será enviada al autor con el fin de ayudar a la depuración, si es necesario (como por ejemplo: la versión de WordPress, los plugins instalados, etc)" + +msgid "Send feedback" +msgstr "Enviar feedback" + +msgid "No email have been provided for the author of this plugin. Therefore, the feedback is impossible" +msgstr "No se ha establecido correo electrónico del autor de este plugin. Por lo tanto, el feedback es imposible" + +msgid "The feedback has been sent" +msgstr "El feedback fue enviado correctamente" + +msgid "Plugins that you may install" +msgstr "" + +msgid "The following plugins have been developed by the author and are not yet installed:" +msgstr "" + +msgid "Plugin not yet installed" +msgstr "" + +msgid "Description and Screenshots" +msgstr "" + +msgid "All author's plugins have been installed. Thank you!" +msgstr "" + +msgid "Installed plugins" +msgstr "" + +msgid "You have already installed the following author's plugins:" +msgstr "" + +msgid "Plugin already installed" +msgstr "" + +msgid "The Wordpress page: %s" +msgstr "" + +msgid "An Unexpected HTTP Error occurred during the API request." +msgstr "Un inesperado error HTTP ocurrió durante la solicitud de la API" + +msgid "Last update:" +msgstr "Última actualización:" + +msgid "Rating: %s" +msgstr "" + +msgid "by %s persons" +msgstr "por %s personas" + +msgid "Number of download:" +msgstr "Número de descargas:" + +msgid "Close popup" +msgstr "Cerrar ventana emergente" + +msgid "Filter: %s" +msgstr "" + +msgid "%s of %s" +msgstr "" + +msgid "Current Page" +msgstr "" + +msgid "Error: %s function is not found" +msgstr "" + +msgid "The file %s cannot be read. You should have a problem with file permissions or security restrictions." +msgstr "" + +msgid "The folder %s cannot be opened. You should have a problem with folder permissions or security restrictions." +msgstr "" + +msgid "The file %s cannot be deleted. You should have a problem with file permissions or security restrictions." +msgstr "" + +msgid "An other process is still running (it runs for %s seconds)" +msgstr "" + +msgid "The file %s cannot be modified/created. You should have a problem with file permissions or security restrictions." +msgstr "" + +msgid "The file %s cannot be created. You should have a problem with file permissions or security restrictions." +msgstr "" + +msgid "The file %s cannot be compressed." +msgstr "" + +msgid "The file %s cannot be renamed. You should have a problem with file permissions or security restrictions." +msgstr "" + +msgid "The file %s cannot be modified. You should have a problem with file permissions or security restrictions." +msgstr "" + diff --git a/core/lang/SL_framework-es_MX.mo b/core/lang/SL_framework-es_MX.mo new file mode 100644 index 0000000000000000000000000000000000000000..72926af637632cf8dd172063d142696d6d0aed38 GIT binary patch literal 6062 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 literal 0 HcmV?d00001 diff --git a/core/lang/SL_framework-es_MX.po b/core/lang/SL_framework-es_MX.po new file mode 100644 index 0000000..18d3498 --- /dev/null +++ b/core/lang/SL_framework-es_MX.po @@ -0,0 +1,438 @@ +msgid "" +msgstr "" +"Generated: SL Framework (http://www.sedlex.fr)\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2013-07-08T21:29:16+00:00\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Poedit-Language: Spanish\n" +"X-Poedit-Country: Mexico\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-KeywordsList: __;\n" +"X-Poedit-Basepath: \n" +"X-Poedit-Bookmarks: \n" +"X-Poedit-SearchPath-0: .\n" +"X-Textdomain-Support: yes\n" + +msgid "About..." +msgstr "acerca de.." + +msgid "Settings" +msgstr "configuracion" + +msgid "Log options" +msgstr "opciones de registro" + +msgid "What is the debug level:" +msgstr "¿cual es el nivel de depuracion?" + +msgid "See the debug logs" +msgstr "ver los registros de depuracion" + +msgid "1=log only the critical errors;" +msgstr "" + +msgid "2=log only the critical errors and the standard errors;" +msgstr "" + +msgid "3=log only the critical errors, the standard errors and the warnings;" +msgstr "" + +msgid "4=log information;" +msgstr "4=informacion de registro" + +msgid "5=log verbose;" +msgstr "5=log destacado" + +msgid "Multisite Management" +msgstr "gestion multisitio" + +msgid "Do you want to allow sub-blogs to modify the translations of the plugins:" +msgstr "Desea permitir sub-blogs modificar las traducciones de los plugins" + +msgid "If this option is unchecked, the translation tab won't be displayed in the blog administration panel." +msgstr "Si esta opción está marcada, la ficha de traducción no se mostrarán en el panel de administración del blog" + +msgid "Summary page for the plugins developped with the SL framework" +msgstr "Página de Resumen para los plugins desarrollados con el marco SL" + +msgid "For now, you have installed %s plugins including %s plugins developped with the SedLex's framework" +msgstr "Por ahora, han instalado plugins de %s incluyendo %s plugins desarrollado con marco de SedLex" + +msgid "The core plugin is located at %s" +msgstr "El plugin de base se encuentra en %s" + +msgid "Plugin name" +msgstr "nombre del plugin" + +msgid "Description" +msgstr "descripcion" + +msgid "There is a SQL database for this plugin" +msgstr "Hay una base de datos SQL para este plugin" + +msgid "Version: %s by %s" +msgstr "Versión: %s de %s" + +msgid "List of SL plugins" +msgstr "Lista de plugins de SL" + +msgid "Parameters of the framework" +msgstr "parametros del marco" + +msgid "Manage translation of the framework" +msgstr "gestionar la traduccion del marco" + +msgid "The folder %s is not %s !" +msgstr "La carpeta %s no es %s!" + +msgid "The file %s is not %s !" +msgstr "El archivo %s no es %s!" + +msgid "The folder %s does not exists and cannot be created !" +msgstr "La carpeta %s no existe y no puede ser creada!" + +msgid "The file %s does not exists and cannot be created !" +msgstr "El archivo %s no existe y no puede ser creado!" + +msgid "There are some issues with folders rights. Please corret them as soon as possible as they could induce bugs and instabilities." +msgstr "Hay algunos problemas con los derechos de las carpetas. Por favor corret tan pronto como sea posible como podría inducir a errores e inestabilidades." + +msgid "Please see below:" +msgstr "vea a continuacion" + +msgid "Close popup" +msgstr "cerrar popup" + +msgid "Here, you may configure three levels of translations: at the plugin level, at the framework level, and at the dashboard level." +msgstr "Aquí, usted puede configurar tres niveles de traducciones: nivel de plugin, en el nivel de marco y en el plano del tablero de instrumentos." + +msgid "Please be informed that your current language is %s. Text will be translated if a translation is available." +msgstr "Tenga en cuenta que su idioma actual es %s. se traducirán si una traducción está disponible." + +msgid "If you want to modify the language, please go in %s and find %s or %s. The second argument is your language and you may modify it as you want." +msgstr "Si desea modificar el idioma, por favor vaya en %s y %s o %s. El segundo argumento es su idioma y usted puede modificarlo como desee." + +msgid "Translations available for this plugin (i.e. %s)" +msgstr "Traducciones disponibles para este plugin (es decir, %s)" + +msgid "Translations available for the SL framework (stored in %s)" +msgstr "Traducciones disponibles para el marco de SL (almacenado en %s)" + +msgid "Adding a new translation for this language: %s" +msgstr "Agregar una nueva traducción para esta lengua: %s" + +msgid "Sentence to translate" +msgstr "frase a traducir" + +msgid "Translation" +msgstr "traduccion" + +msgid "Your name:" +msgstr "su nombre" + +msgid "(if your name/pseudo is already in the list, there is no need to fill this input)" +msgstr "(si su nombre/pseudo ya está en la lista, no es necesario llenar esta entrada)" + +msgid "Your email or your website:" +msgstr "Su correo electrónico o su sitio web:" + +msgid "Create the translation files" +msgstr "crear los archivos de traduccion" + +msgid "Add a new translation" +msgstr "añadir una nueva traduccion" + +msgid "Modifying the translation for this language: %s" +msgstr "Modificación de la traducción para esta lengua: %s" + +msgid "The number of occurrence of %s does not match in both string. Please note that the string %s will be replaced with a contextual string." +msgstr "El número de ocurrencia de %s no es igual en ambas cadenas. Tenga en cuenta que la cadena %s se reemplazará por una cadena contextual." + +msgid "Modify the translation files" +msgstr "modificar los archivos de traduccion" + +msgid "Modify translations" +msgstr "modificar las traducciones" + +msgid "%s sentences have been translated (i.e. %s)." +msgstr "%s sentencias han sido traducido (es decir, %s)." + +msgid "%s sentences have been translated (i.e. %s) %s %s sentences have to be checked because they are close (but not identical) to those to translate.%s" +msgstr "%s sentencias han sido traducido (es decir, %s) %s %s oraciones deben revisarse porque son cerrar (pero no idéntico) a los que translate.%s" + +msgid "The translation %s have been sent" +msgstr "" + +msgid "An error occured sending the email." +msgstr "" + +msgid "Make sure that your wordpress is able to send email." +msgstr "Asegúrese de que tu wordpress es capaz de enviar correo electrónico." + +msgid "Send translation" +msgstr "enviar traduccion" + +msgid "%s file cannot be created for %s as there is no translated sentence. Please, translate at least one sentence to create a file" +msgstr "" + +msgid "%s file has been updated for %s" +msgstr "" + +msgid "%s file has been updated from this file" +msgstr "" + +msgid "%s file has been created with a new translation for %s" +msgstr "" + +msgid "%s file has been created from this file" +msgstr "" + +msgid "If you do not want to loose your translations on the next upgrading of this plugin, it is recommended to send the translation files to the author by clicking %s here %s !" +msgstr "" + +msgid "If you do not want to loose your translations on the next upgrading of this plugin, please save them on your hard disk before upgrading and then restore them after the upgrade !" +msgstr "" + +msgid "Confirmation" +msgstr "" + +msgid "Summary cached %s" +msgstr "" + +msgid "The sentences used in this plugin are in English. Help the others users using the same language as you by translating this plugin." +msgstr "" + +msgid "This plugin is available in %s languages." +msgstr "" + +msgid "There are %s sentences to be translated in this plugin." +msgstr "" + +msgid "Language" +msgstr "idioma" + +msgid "Ratio %" +msgstr "" + +msgid "Translators" +msgstr "traductores" + +msgid "This is the default language of the plugin. It cannot be modified." +msgstr "" + +msgid "Modify" +msgstr "" + +msgid "Send to the author of the plugin" +msgstr "" + +msgid "You may add a new translation hereafter (Please note that it is recommended to send your translation to the author so that he would be able to add your translation to the future release of the plugin !)" +msgstr "" + +msgid "Add" +msgstr "añadir" + +msgid "The 'SL framework' is a framework used for developping many plugins like this one. Thus, if you participate translating the framework, it will be very helpful for a bunch of plugins." +msgstr "" + +msgid "There is %s languages supported for the 'SL framework'." +msgstr "" + +msgid "There is %s sentence to be translated in the framework." +msgstr "" + +msgid "Send to the author of the framework" +msgstr "" + +msgid "Add new" +msgstr "agregar nuevo" + +msgid "Error: the submitted value is not an integer and thus, the parameter has not been updated!" +msgstr "" + +msgid "Error: the submitted string does not match the constrains" +msgstr "" + +msgid "Error: the submitted file can not be uploaded!" +msgstr "" + +msgid "Error: security issue!" +msgstr "" + +msgid "Parameters" +msgstr "" + +msgid "Here are the parameters of the plugin. Modify them at will to fit your needs." +msgstr "" + +msgid "Here are the parameters of the framework. Modify them at will to fit your needs." +msgstr "" + +msgid "(Delete)" +msgstr "" + +msgid "Values" +msgstr "" + +msgid "Warning: some characters have been removed because they are not allowed here" +msgstr "" + +msgid "(integer)" +msgstr "" + +msgid "(If you want to delete this file, please check this box %s)" +msgstr "" + +msgid "Update" +msgstr "actualizacion" + +msgid "Reset to default values" +msgstr "restaurar valores por defecto" + +msgid "Some parameters have not been updated due to errors (see below)!" +msgstr "" + +msgid "Parameters have been updated (but with some warnings)!" +msgstr "" + +msgid "Parameters have been updated successfully!" +msgstr "" + +msgid "Parameters have been reset to their default values!" +msgstr "" + +msgid "Plugins that you may install" +msgstr "" + +msgid "The following plugins have been developed by the author and are not yet installed:" +msgstr "" + +msgid "Plugin not yet installed" +msgstr "" + +msgid "Description and Screenshots" +msgstr "" + +msgid "All author's plugins have been installed. Thank you!" +msgstr "" + +msgid "Installed plugins" +msgstr "" + +msgid "You have already installed the following author's plugins:" +msgstr "" + +msgid "Plugin already installed" +msgstr "ya instalado el plug in" + +msgid "The Wordpress page: %s" +msgstr "La página de Wordpress: %s" + +msgid "An Unexpected HTTP Error occurred during the API request." +msgstr "" + +msgid "Last update:" +msgstr "ultima actualizacion" + +msgid "Rating: %s" +msgstr "" + +msgid "by %s persons" +msgstr "" + +msgid "Number of download:" +msgstr "" + +msgid "Filter: %s" +msgstr "" + +msgid "%s of %s" +msgstr "" + +msgid "Current Page" +msgstr "pagina actual" + +msgid "Donate" +msgstr "" + +msgid "If you like the plugin, do not hesitate to donate. Please note that this plugin is developed in my spare time for free." +msgstr "" + +msgid "This is not mandatory! but it may be a sign that this plugin fits you needs: it makes me happy..." +msgstr "" + +msgid "Feedback form" +msgstr "formulario de comentarios" + +msgid "This form is an easy way to contact the author and to discuss issues/incompatibilities/etc. with him" +msgstr "" + +msgid "Contact the author" +msgstr "contactar con el autor" + +msgid "Your email:" +msgstr "su mail:" + +msgid "Useful... so that the author will be able to anwser you." +msgstr "" + +msgid "Your comments:" +msgstr "su comentario" + +msgid "Please note that additional information on your wordpress installation will be sent to the author in order to help the debugging if needed (such as : the wordpress version, the installed plugins, etc.)" +msgstr "" + +msgid "Send feedback" +msgstr "enviar comentarios" + +msgid "No email have been provided for the author of this plugin. Therefore, the feedback is impossible" +msgstr "" + +msgid "The feedback has been sent" +msgstr "" + +msgid "KB" +msgstr "" + +msgid "MB" +msgstr "" + +msgid "GB" +msgstr "" + +msgid "Error: %s function is not found" +msgstr "" + +msgid "The file %s cannot be read. You should have a problem with file permissions or security restrictions." +msgstr "" + +msgid "The folder %s cannot be opened. You should have a problem with folder permissions or security restrictions." +msgstr "" + +msgid "The file %s cannot be deleted. You should have a problem with file permissions or security restrictions." +msgstr "" + +msgid "An other process is still running (it runs for %s seconds)" +msgstr "" + +msgid "The file %s cannot be modified/created. You should have a problem with file permissions or security restrictions." +msgstr "" + +msgid "The file %s cannot be created. You should have a problem with file permissions or security restrictions." +msgstr "" + +msgid "The file %s cannot be compressed." +msgstr "" + +msgid "The file %s cannot be renamed. You should have a problem with file permissions or security restrictions." +msgstr "" + +msgid "The file %s cannot be modified. You should have a problem with file permissions or security restrictions." +msgstr "" + diff --git a/core/lang/SL_framework-fa_IR.mo b/core/lang/SL_framework-fa_IR.mo new file mode 100644 index 0000000000000000000000000000000000000000..22e4143b3eeaf0184673bf0aceabe6208967da15 GIT binary patch literal 18731 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 CK(HGC literal 0 HcmV?d00001 diff --git a/core/lang/SL_framework-fa_IR.po b/core/lang/SL_framework-fa_IR.po new file mode 100644 index 0000000..54cc3a1 --- /dev/null +++ b/core/lang/SL_framework-fa_IR.po @@ -0,0 +1,430 @@ +msgid "" +msgstr "" +"Generated: SL Framework (http://www.sedlex.fr)\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2014-03-03T16:30:03+00:00\n" +"Last-Translator: Mehdi \n" +"Last-Translator: AhmadWayfarer \n" +"Last-Translator: eminem <>\n" +"Last-Translator: sehrama.ir \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Poedit-Language: Farsi\n" +"X-Poedit-Country: Iran\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-KeywordsList: __;\n" +"X-Poedit-Basepath: \n" +"X-Poedit-Bookmarks: \n" +"X-Poedit-SearchPath-0: .\n" +"X-Textdomain-Support: yes\n" + +msgid "About..." +msgstr "در باره" + +msgid "Settings" +msgstr "تنظیمات" + +msgid "Log options" +msgstr "تاریخچه‌ی تنظیمات" + +msgid "What is the debug level:" +msgstr "سطح اشکال‌زدایی:" + +msgid "See the debug logs" +msgstr "مشاهده‌ی تاریخچه اشکال‌زدایی" + +msgid "1=log only the critical errors;" +msgstr "1=فقط ثبت خطاهای اشكال‌زدایی‌های بحرانی؛" + +msgid "2=log only the critical errors and the standard errors;" +msgstr "2=فقط ثبت خطاهای اشكال‌زدایی‌های بحرانی و خطاهای استاندارد؛" + +msgid "3=log only the critical errors, the standard errors and the warnings;" +msgstr "3=فقط ثبت خطاهای اشكال‌زدایی‌های بحرانی و خطاهای استاندارد و هشدارها؛" + +msgid "4=log information;" +msgstr "4=ثبت اطلاعات" + +msgid "5=log verbose;" +msgstr "5=ثبت verbose" + +msgid "Multisite Management" +msgstr "مدیریت چند سایته" + +msgid "Summary page for the plugins developped with the SL framework" +msgstr "صفحه‌ی خلاصه‌یی از پلاگین‌های ایجاد شده با فریم‌ورك SL" + +msgid "For now, you have installed %s plugins including %s plugins developped with the SedLex's framework" +msgstr "هم اکنون شما از بین %s افزونه، %s افزونه‌ی توسعه یافته با چارچوب SedLex نصب کرده‌اید." + +msgid "The core plugin is located at %s" +msgstr "هسته‌ی پلاگین واقع در %s است" + +msgid "Plugin name" +msgstr "نام افزونه" + +msgid "Description" +msgstr "توضیحات" + +msgid "There is a SQL database for this plugin" +msgstr "پایگاه داده SQL برای این پلاگین وجود دارد" + +msgid "Version: %s by %s" +msgstr "نسخه: %s از %s" + +msgid "List of SL plugins" +msgstr "لیست پلاگین‌های SL" + +msgid "Parameters of the framework" +msgstr "پارامترهای فریم‌ورک" + +msgid "Manage translation of the framework" +msgstr "مدیریت ترجمه‌ی فریم‌ورک" + +msgid "The folder %s is not %s !" +msgstr "پوشه %s ، %s نمی‌باشد!" + +msgid "The file %s is not %s !" +msgstr "فایل %s ، %s نمی‌باشد!" + +msgid "The folder %s does not exists and cannot be created !" +msgstr "پوشه %s موجود نمی‌باشد و نمی‌تواند ایجاد شود!" + +msgid "The file %s does not exists and cannot be created !" +msgstr "فایل %s موجود نمی‌باشد و نمی‌تواند ایجاد شود!" + +msgid "Please see below:" +msgstr "به موارد زیر توجه کنید:" + +msgid "Close popup" +msgstr "بستن پنجره" + +msgid "Here, you may configure three levels of translations: at the plugin level, at the framework level, and at the dashboard level." +msgstr "در این‌جا، شما ممکن است در سه سطح ترجمه پیکربندی کنید: در سطح افزونه، در سطح فریم‌ورک و در سطح پیش‌خوان." + +msgid "Please be informed that your current language is %s. Text will be translated if a translation is available." +msgstr "لطفاً توجه داشته باشید که زبان جاری شما %s است. اگر یک مترجم در دسترس باشد متن ترجمه خواهد شد." + +msgid "If you want to modify the language, please go in %s and find %s or %s. The second argument is your language and you may modify it as you want." +msgstr "اگر می‌خواهید زبان را ویرایش کنید، لطفاً به %s بروید و فایل %s یا %s را پیدا کنید؛ آرگومان دوم زبان شماست و شما می‌توانید آن را به دل‌خواه خود به هر زبانی ویرایش کنید." + +msgid "Translations available for this plugin (i.e. %s)" +msgstr "ترجمه‌های موجود برای این پلاگین (برای مثال %s)" + +msgid "Translations available for the SL framework (stored in %s)" +msgstr "ترجمه‌های موجود برای فریم ورك SL (ذخیره شده در %s)" + +msgid "Adding a new translation for this language: %s" +msgstr "اضافه كردن ترجمه‌ی جدید برای این زبان: %s" + +msgid "Sentence to translate" +msgstr "جمله برای ترجمه" + +msgid "Translation" +msgstr "ترجمه (توسط سئحراما)" + +msgid "Your name:" +msgstr "نام شما:" + +msgid "Your email or your website:" +msgstr "ایمیل:" + +msgid "Create the translation files" +msgstr "ایجاد فایل‌های ترجمه" + +msgid "Add a new translation" +msgstr "اضافه کردن ترجمه‌ی جدید" + +msgid "Modifying the translation for this language: %s" +msgstr "اصلاح ترجمه‌ی این زبان: %s" + +msgid "The number of occurrence of %s does not match in both string. Please note that the string %s will be replaced with a contextual string." +msgstr "برخی از رخداد %s در هر دو رشته یا جمله مطابق ندارد. لطفاً توجه داشته باشید که رشته %s با رشته‌ی متنی جایگزین خواهد شد." + +msgid "Modify the translation files" +msgstr "اصلاح فایل‌های ترجمه" + +msgid "Modify translations" +msgstr "تغییر ترجمه‌ها" + +msgid "%s sentences have been translated (i.e. %s)." +msgstr "%s جمله ترجمه شده‌اند ( برای مثال %s )" + +msgid "%s sentences have been translated (i.e. %s) %s %s sentences have to be checked because they are close (but not identical) to those to translate.%s" +msgstr "%s جمله ترجمه شده است. (به عبارتی %s) تعداد %s%s جمله باید بررسی شوند به خاطر این که به طور دقیق ترجمه نشده است.%s" + +msgid "The translation %s have been sent" +msgstr "ترجمه از %s فرستاده شده" + +msgid "An error occured sending the email." +msgstr "با بروز خطا، ایمیل ارسال شود." + +msgid "Make sure that your wordpress is able to send email." +msgstr "از قادر بودن وردپرس خود برای ارسال ایمیل اطمینان حاصل كنید." + +msgid "Send translation" +msgstr "ارسال ترجمه" + +msgid "%s file has been updated for %s" +msgstr "%s فایل برای %s به‌روز رسانی شدند" + +msgid "%s file has been updated from this file" +msgstr "%s فایل از این فایل به‌روز رسانی شدند" + +msgid "%s file has been created with a new translation for %s" +msgstr "%s فایل برای ترجمه‌ی جدید %s ایجاد شدند" + +msgid "%s file has been created from this file" +msgstr "%s فایل از این فایل ایجاد شدند" + +msgid "If you do not want to loose your translations on the next upgrading of this plugin, it is recommended to send the translation files to the author by clicking %s here %s !" +msgstr "اگر می‌خواهید ترجمه‌تان را پس از به‌روزرسانی‌ این افزونه از دست ندهید، توصیه می‌شود فایل‌های ترجمه را به نویسنده بفرستید، با کلیک کردن %s اینجا %s" + +msgid "If you do not want to loose your translations on the next upgrading of this plugin, please save them on your hard disk before upgrading and then restore them after the upgrade !" +msgstr "اگر می‌خواهید ترجمه‌تان را پس از به‌روزرسانی‌ این افزونه از دست ندهید، لطفاً آن‌ها را قبل از به‌روزرسانی بر روی هارددیسک خود ذخیره نمایید و سپس بعد از به‌روزرسانی آن‌ها را بازیابی کنید!" + +msgid "Confirmation" +msgstr "تأیید" + +msgid "Summary cached %s" +msgstr "خلاصه‌ی کش %s" + +msgid "The sentences used in this plugin are in English. Help the others users using the same language as you by translating this plugin." +msgstr "جملات استفاده شده در این افزونه انگلیسی است. کاربران دیگر کمک کنند که این افزونه را به زبان خود ترجمه کنند." + +msgid "This plugin is available in %s languages." +msgstr "پلاگین برای %s زبان موجود است." + +msgid "There are %s sentences to be translated in this plugin." +msgstr "%s جمله در پلاگین باید ترجمه شوند." + +msgid "Language" +msgstr "زبان" + +msgid "Ratio %" +msgstr "ضریب %" + +msgid "Translators" +msgstr "مترجمان" + +msgid "This is the default language of the plugin. It cannot be modified." +msgstr "این زبان پیش فرض پلاگین است. قابل تغییر نمی‌باشد." + +msgid "Modify" +msgstr "تغییر دادن" + +msgid "Send to the author of the plugin" +msgstr "ارسال به نویسنده‌ی این افزونه" + +msgid "Add" +msgstr "اضافه کردن" + +msgid "There is %s languages supported for the 'SL framework'." +msgstr "%s زبان برای \"فریم ورك SL\" پشتیبانی می‌شوند." + +msgid "There is %s sentence to be translated in the framework." +msgstr "%s جمله در فریم‌ورك باید ترجمه شوند." + +msgid "Send to the author of the framework" +msgstr "ارسال به نویسنده فریم ورك" + +msgid "Add new" +msgstr "اضافه كردن جدید" + +msgid "Error: the submitted value is not an integer and thus, the parameter has not been updated!" +msgstr "خطا: مقدار ثبت شده یک عدد صحیح نیست و در نتیجه پارامتر به‌روز نشده است." + +msgid "Error: the submitted string does not match the constrains" +msgstr "خطا: رشته‌ی ارائه شده با محدودیت مطابقت ندارد" + +msgid "Error: the submitted file can not be uploaded!" +msgstr "خطا: فایل ارائه شده را نمی‌توان به آپلود!" + +msgid "Error: security issue!" +msgstr "خطای امنیتی!" + +msgid "Parameters" +msgstr "پارامتر" + +msgid "Here are the parameters of the plugin. Modify them at will to fit your needs." +msgstr "در این‌جا پارامترهای افزونه قرار دارند. آن‌ها را به قصد متناسب با نیازهای خود ویرایش کنید." + +msgid "Here are the parameters of the framework. Modify them at will to fit your needs." +msgstr "در اینجا پارامترهای چارچوب قرار دارند. آن‌ها را به قصد متناسب با نیازهای خود ویرایش کنید." + +msgid "(Delete)" +msgstr "(حذف)" + +msgid "Values" +msgstr "مقدار" + +msgid "Warning: some characters have been removed because they are not allowed here" +msgstr "هشدار: تعدادی کاراکتر به خاطر این که آن‌ها مجاز نیستند حذف شده است." + +msgid "(integer)" +msgstr "(عدد)" + +msgid "(If you want to delete this file, please check this box %s)" +msgstr "(اگر قصد حذف این فایل را دارید لطفا اين باكس را تیك بزنید %s)" + +msgid "Update" +msgstr "به‌روز رسانی" + +msgid "Reset to default values" +msgstr "باز گردانی به تنظیمات اولیه" + +msgid "Some parameters have not been updated due to errors (see below)!" +msgstr "به دليل خطا چند پارامتر به‌روز رسانی نشدند (پایین را ببینید)!" + +msgid "Parameters have been updated (but with some warnings)!" +msgstr "پارامترها به‌روز رسانی شدند (اما با چند هشدار)!" + +msgid "Parameters have been updated successfully!" +msgstr "پارامترها با موفقیت به‌روز رسانی شده‌اند!" + +msgid "Parameters have been reset to their default values!" +msgstr "مقادیر پارامترها به مقدار پیش‌فرض تغییر یافت!" + +msgid "Plugins that you may install" +msgstr "افزونه می‌تواند نصب شود" + +msgid "Plugin not yet installed" +msgstr "افزونه هنوز نصب نشده است" + +msgid "Description and Screenshots" +msgstr "توضیحات و تصاویر" + +msgid "All author's plugins have been installed. Thank you!" +msgstr "تمام پلاگین‌های نویسنده نصب شدند. با تشكر!" + +msgid "Installed plugins" +msgstr "افزونه‌های نصب شده" + +msgid "You have already installed the following author's plugins:" +msgstr "شما قبلاً پلاگین نویسنده را نصب كرده‌اید:" + +msgid "Plugin already installed" +msgstr "افزونه نصب شد" + +msgid "The Wordpress page: %s" +msgstr "صفحه: %s" + +msgid "An Unexpected HTTP Error occurred during the API request." +msgstr "خطای HTML غیر منتظره‌ای طی درخواست API اتفاق افتاد." + +msgid "Last update:" +msgstr "آخرین به‌روز رسانی" + +msgid "Rating: %s" +msgstr "امتیاز: %s" + +msgid "by %s persons" +msgstr "بر حسب %s" + +msgid "Number of download:" +msgstr "تعداد دریافت:" + +msgid "Filter: %s" +msgstr "فیلتر: %s" + +msgid "%s of %s" +msgstr "%s از %s" + +msgid "Current Page" +msgstr "صفحه جاری" + +msgid "Donate" +msgstr "حمایت" + +msgid "If you like the plugin, do not hesitate to donate. Please note that this plugin is developed in my spare time for free." +msgstr "اگر شما افزونه را دوست دارید، از هیچ کمکی دریغ نکنید. لطفاً توجه داشته باشید که افزونه در اوقات فراغت من به صورت رایگان توسعه داده شده است." + +msgid "This is not mandatory! but it may be a sign that this plugin fits you needs: it makes me happy..." +msgstr "این کار اجباری نیست! اما این می‌تواند نشانه‌ی این باشد که افزونه متناسب با نیاز شماست و این مرا هم خوشحال می‌کند..." + +msgid "Feedback form" +msgstr "بازخورد از:" + +msgid "This form is an easy way to contact the author and to discuss issues/incompatibilities/etc. with him" +msgstr "این فرم راهی ساده برای برقراری ارتباط با نویسنده و بحث کردن در مورد مسائل، ناسازگاری‌ها و... با اوست." + +msgid "Contact the author" +msgstr "تماس با نویسنده" + +msgid "Your email:" +msgstr "ایمیل:" + +msgid "Useful... so that the author will be able to anwser you." +msgstr "مفید بود... برای این که نویسنده قادر به پاسخ شما باشد." + +msgid "Your comments:" +msgstr "نظر شما:" + +msgid "Please note that additional information on your wordpress installation will be sent to the author in order to help the debugging if needed (such as : the wordpress version, the installed plugins, etc.)" +msgstr "لطفاً توجه داشته باشید که یک سری اطلاعات اضافی در مورد نصب وردپرس به نویسنده به منظور کمک در اشکال‌زدایی در صورت نیاز فرستاده خواهد شد (مثل: نسخه‌ی وردپرس، افزونه‌های نصب شده و...)." + +msgid "Send feedback" +msgstr "ارسال بازخورد" + +msgid "No email have been provided for the author of this plugin. Therefore, the feedback is impossible" +msgstr "هیچ ایمیلی برای نویسنده‌ی این افزونه ارائه نشده است. بنا بر این ارسال بازخورد غیر ممکن است." + +msgid "The feedback has been sent" +msgstr "بازخورد ارسال شده است" + +msgid "KB" +msgstr "KB" + +msgid "MB" +msgstr "MB" + +msgid "GB" +msgstr "GB" + +msgid "Error: %s function is not found" +msgstr "خطا: %s تابع یافت نشد" + +msgid "The file %s cannot be read. You should have a problem with file permissions or security restrictions." +msgstr "فایل %s نمی‌تواند خوانده شود. شما باید مشکلی با مجوزهای دسترسی فایل و محدودیت‌های امنیتی داشته باشید." + +msgid "The folder %s cannot be opened. You should have a problem with folder permissions or security restrictions." +msgstr "پوشه‌ی %s نمی‌تواند باز شود. شما باید مشکلی با مجوزهای دسترسی فایل و محدودیت‌های امنیتی داشته باشید." + +msgid "The file %s cannot be deleted. You should have a problem with file permissions or security restrictions." +msgstr "فایل %s نمی‌تواند حذف شود. شما باید مشکلی با مجوزهای دسترسی فایل و محدودیت‌های امنیتی داشته باشید." + +msgid "An other process is still running (it runs for %s seconds)" +msgstr "عملیات دیگری در حال اجراست (به مدت %s ثانيه)" + +msgid "The file %s cannot be modified/created. You should have a problem with file permissions or security restrictions." +msgstr "فایل %s نمی‌تواند ویرایش/ایجاد شود. شما باید مشکلی با مجوزهای دسترسی فایل و محدودیت‌های امنیتی داشته باشید." + +msgid "The file %s cannot be created. You should have a problem with file permissions or security restrictions." +msgstr "فایل %s نمی‌تواند ایجاد شود. شما باید مشکلی با مجوزهای دسترسی فایل و محدودیت‌های امنیتی داشته باشید." + +msgid "The file %s cannot be compressed." +msgstr "فايل %s نمی تواند فشرده شود." + +msgid "The file %s cannot be renamed. You should have a problem with file permissions or security restrictions." +msgstr "نام فایل %s نمی‌تواند تغییر کند. شما باید مشکلی با مجوزهای دسترسی فایل و محدودیت‌های امنیتی داشته باشید." + +msgid "The file %s cannot be modified. You should have a problem with file permissions or security restrictions." +msgstr "فایل %s نمی‌تواند ویرایش شود. شما باید مشکلی با مجوزهای دسترسی فایل و محدودیت‌های امنیتی داشته باشید." + +msgid "Do you want to allow sub-blogs to modify the translations of the plugins:" +msgstr "آیا می‌خواهید به زیردامنه‌ها برای تغییر ترجمه‌ی پلاگین اجازه بدهید؟" + +msgid "If this option is unchecked, the translation tab won't be displayed in the blog administration panel." +msgstr "اگر این گزینه از حالت انتخاب خارج شود، تب ترجمه در پنل مدیریتی وبلاگ نمایش داده نخواهد شد." + +msgid "The following plugins have been developed by the author and are not yet been installed:" +msgstr "افزونه‌ی زیر توسط نویسنده توسعه داده شده و هنوز نصب نشده است:" + +msgid "(if your name/pseudo is already in the list, there is no need to fill this input)" +msgstr "(اگر نام شما در لیست هست، نیازی به ورود آن ندارید)" + diff --git a/core/lang/SL_framework-fr_FR.mo b/core/lang/SL_framework-fr_FR.mo new file mode 100644 index 0000000000000000000000000000000000000000..2486e060e8d813b0d244694942ad5ea38fad71b2 GIT binary patch literal 17047 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 P!k^upbyJEBL=FE7$Ik@` literal 0 HcmV?d00001 diff --git a/core/lang/SL_framework-fr_FR.po b/core/lang/SL_framework-fr_FR.po new file mode 100644 index 0000000..ad856db --- /dev/null +++ b/core/lang/SL_framework-fr_FR.po @@ -0,0 +1,442 @@ +msgid "" +msgstr "" +"Generated: SL Framework (http://www.sedlex.fr)\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2014-05-23T06:40:36+00:00\n" +"Last-Translator: SedLex \n" +"Last-Translator: PierreF \n" +"Last-Translator: wkpixearts \n" +"Last-Translator: mediacop <>\n" +"Last-Translator: FlorianP. \n" +"Last-Translator: Guillaume \n" +"Last-Translator: WaliAhmed \n" +"Last-Translator: SebastienGrenet <>\n" +"Last-Translator: mutmut \n" +"Last-Translator: jlmcreation \n" +"Last-Translator: allostrip \n" +"Last-Translator: Dominique \n" +"Last-Translator: ChristopheLemuet <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n>1;\n" +"X-Poedit-Language: French\n" +"X-Poedit-Country: France\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-KeywordsList: __;\n" +"X-Poedit-Basepath: \n" +"X-Poedit-Bookmarks: \n" +"X-Poedit-SearchPath-0: .\n" +"X-Textdomain-Support: yes\n" + +msgid "About..." +msgstr "À propos..." + +msgid "Settings" +msgstr "Réglages" + +msgid "Log options" +msgstr "Options du journal" + +msgid "What is the debug level:" +msgstr "Quel est le niveau de débogage:" + +msgid "See the debug logs" +msgstr "Voir les journaux de débogage" + +msgid "1=log only the critical errors;" +msgstr "1=Journal (Erreurs critiques seulement)" + +msgid "2=log only the critical errors and the standard errors;" +msgstr "2=Journal (Erreurs standard et critiques seulement)" + +msgid "3=log only the critical errors, the standard errors and the warnings;" +msgstr "3=Journal (Erreurs standard, avertissements et critiques seulement)" + +msgid "4=log information;" +msgstr "4=Journal" + +msgid "5=log verbose;" +msgstr "5=Journal détaillé" + +msgid "Multisite Management" +msgstr "Gestion multi sites" + +msgid "Do you want to allow sub-blogs to modify the translations of the plugins:" +msgstr "Voulez-vous autoriser les sous-blog à modifier les traductions des extensions:" + +msgid "If this option is unchecked, the translation tab won't be displayed in the blog administration panel." +msgstr "Si cette option est décoché, l'onglet de traduction n'est pas visible dans le panneau d'administration du blog" + +msgid "Summary page for the plugins developped with the SL framework" +msgstr "Page de synthèse pour les plugins développés avec le framework SL" + +msgid "Plugin name" +msgstr "Nom du plugin" + +msgid "Description" +msgstr "Description" + +msgid "There is a SQL database for this plugin" +msgstr "Il y a une base de données SQL pour cette extension" + +msgid "Version: %s by %s" +msgstr "Version : %s par %s" + +msgid "List of SL plugins" +msgstr "Liste des plugins SL" + +msgid "Parameters of the framework" +msgstr "Paramètres du framework" + +msgid "Manage translation of the framework" +msgstr "Gérer les traductions du framework" + +msgid "The folder %s is not %s !" +msgstr "Le répertoire %s n'est pas %s !" + +msgid "The file %s is not %s !" +msgstr "Le fichier %s n'est pas %s !" + +msgid "The folder %s does not exists and cannot be created !" +msgstr "Le répertoire %s n'existe pas et ne peut pas être créé !" + +msgid "The file %s does not exists and cannot be created !" +msgstr "Le fichier %s n'existe pas et ne peux pas être créé !" + +msgid "There are some issues with folders rights. Please corret them as soon as possible as they could induce bugs and instabilities." +msgstr "Il y a des problèmes avec les droits des répertoires. Merci de les corriger dès que possible afin d'éviter des bugs et des instabilités." + +msgid "Please see below:" +msgstr "Merci de voir ci-dessous :" + +msgid "Filter: %s" +msgstr "Filtre : %s" + +msgid "%s of %s" +msgstr "%s de %s" + +msgid "Current Page" +msgstr "Page actuelle" + +msgid "Donate" +msgstr "Faire un don" + +msgid "If you like the plugin, do not hesitate to donate. Please note that this plugin is developed in my spare time for free." +msgstr "Si vous aimez le plugin, n'hésitez pas à faire un don. Veuillez noter que ce plugin est développé dans mon temps libre pour libre." + +msgid "This is not mandatory! but it may be a sign that this plugin fits you needs: it makes me happy..." +msgstr "Ce n'est pas obligatoire! mais il peut être un signe que ce plug-in s'intègre vos besoins: cela me rend heureuse ..." + +msgid "Feedback form" +msgstr "Formulaire de feedback" + +msgid "This form is an easy way to contact the author and to discuss issues/incompatibilities/etc. with him" +msgstr "Ce formulaire est un moyen simple de contacter l'auteur afin de discuter avec lui de vos problèmes, des incompatibilités rencontrées, etc." + +msgid "Contact the author" +msgstr "Contact de l'auteur" + +msgid "Your name:" +msgstr "Votre nom :" + +msgid "Your email:" +msgstr "Votre email :" + +msgid "Useful... so that the author will be able to anwser you." +msgstr "Utile ... ainsi l'auteur pourra vous répondre." + +msgid "Your comments:" +msgstr "Vos commentaires :" + +msgid "Please note that additional information on your wordpress installation will be sent to the author in order to help the debugging if needed (such as : the wordpress version, the installed plugins, etc.)" +msgstr "Merci de noter que des informations complémentaires relatives à votre installation de wordpress seront envoyées à l'auteur afin d'aider la correction des erreurs(comme la version de wordpress, la liste des plugins installés, etc.)" + +msgid "Send feedback" +msgstr "Envoyer vos commentaires" + +msgid "No email have been provided for the author of this plugin. Therefore, the feedback is impossible" +msgstr "Aucun email n'a été communiqué par l'auteur de ce plugin. Aucun feedback n'est donc possible." + +msgid "The feedback has been sent" +msgstr "Le feedback a été envoyé" + +msgid "An error occured sending the email." +msgstr "Une erreur est survenue lors de l'envoi du mail" + +msgid "Make sure that your wordpress is able to send email." +msgstr "Verifier que votre wordpress est en capacité d'envoyer des mails" + +msgid "Plugins that you may install" +msgstr "Les plugins que vous pouvez installer" + +msgid "The following plugins have been developed by the author and are not yet installed:" +msgstr "Les plugins suivants ont été développé par l'auteur et vous ne les avez pas encore installés :" + +msgid "Plugin not yet installed" +msgstr "Les plugins non encore installés" + +msgid "Description and Screenshots" +msgstr "Description et captures d'écran" + +msgid "All author's plugins have been installed. Thank you!" +msgstr "Tous les plugins de l'auteur ont été installé. Merci à vous !" + +msgid "Installed plugins" +msgstr "Plugins installés" + +msgid "You have already installed the following author's plugins:" +msgstr "Vous avez installés les plugins suivants de l'auteur :" + +msgid "Plugin already installed" +msgstr "Plugins déjà installés" + +msgid "The Wordpress page: %s" +msgstr "La page Wordpress : %s" + +msgid "An Unexpected HTTP Error occurred during the API request." +msgstr "Une erreur HTTP inattendue est survenue durant la requête API." + +msgid "Last update:" +msgstr "Dernière mise à jour :" + +msgid "Rating: %s" +msgstr "Evaluation : %s" + +msgid "by %s persons" +msgstr "par %s personnes" + +msgid "Number of download:" +msgstr "Nombre de téléchargement :" + +msgid "Error: the submitted value is not an integer and thus, the parameter has not been updated!" +msgstr "Erreur : la valeur soumises n'est pas un entier, la valeur du paramètre n'est donc pas mise à jour" + +msgid "Error: the submitted string does not match the constrains" +msgstr "Erreur : la chaine de caractère soumise ne respecte pas les contraines imposées" + +msgid "Error: the submitted file can not be uploaded!" +msgstr "Erreur : le fichier soumis ne peut pas être enregistré !" + +msgid "Error: security issue!" +msgstr "Erreur: problème de sécurité!" + +msgid "Parameters" +msgstr "Paramètres" + +msgid "Here are the parameters of the plugin. Modify them at will to fit your needs." +msgstr "Voici les paramètres du plugin. Modifier les afin de satisfaire vos besoins." + +msgid "Here are the parameters of the framework. Modify them at will to fit your needs." +msgstr "Voici les paramètres du framework. Modifier les afin de satisfaire vos besoins." + +msgid "(Delete)" +msgstr "Effacer" + +msgid "Values" +msgstr "Valeurs" + +msgid "Warning: some characters have been removed because they are not allowed here" +msgstr "Attention : certains caractères ont été supprimés car ils ne sont pas autorisés ici" + +msgid "(integer)" +msgstr "(entier)" + +msgid "(If you want to delete this file, please check this box %s)" +msgstr "(Si vous voulez effacer ce fichier, merci de cocher cette case %s)" + +msgid "Update" +msgstr "Mise à jour" + +msgid "Reset to default values" +msgstr "Réinitialisation des valeurs par défaut" + +msgid "Some parameters have not been updated due to errors (see below)!" +msgstr "Certains paramètres n'ont pas été mis à jour à cause d'erreurs (voir ci-dessous) !" + +msgid "Parameters have been updated (but with some warnings)!" +msgstr "Les paramètres ont été mis à jour (mais il existe des avertissements) !" + +msgid "Parameters have been updated successfully!" +msgstr "Les paramètres ont été mis à jour avec succès !" + +msgid "Parameters have been reset to their default values!" +msgstr "Les paramètres ont été réinitialisés avec leur valeur par défaut" + +msgid "Close popup" +msgstr "Fermer le popup" + +msgid "Here, you may configure three levels of translations: at the plugin level, at the framework level, and at the dashboard level." +msgstr "Ici, vous pouvez configurer trois niveaux de traductions : au niveau du plugin, au niveau du framework, et au niveau de la zone d'administration." + +msgid "Please be informed that your current language is %s. Text will be translated if a translation is available." +msgstr "Veuillez-noter que votre langue actuelle est %s. Le texte sera traduit s'il existe une traduction disponible." + +msgid "If you want to modify the language, please go in %s and find %s or %s. The second argument is your language and you may modify it as you want." +msgstr "Si vous souhaitez modifier une langue, allez dans %s et trouvez %s ou %s. Le deuxième argument est votre langue et vous pouvez le modifier comme vous le voulez." + +msgid "Translations available for this plugin (i.e. %s)" +msgstr "Traductions disponibles pour ce plugin (i.e. %s)" + +msgid "Translations available for the SL framework (stored in %s)" +msgstr "Traductions disponibles pour le SL framework (stockées dans %s)" + +msgid "Adding a new translation for this language: %s" +msgstr "Ajouter une traduction pour cette langue : %s" + +msgid "Sentence to translate" +msgstr "Phrase à traduire" + +msgid "Translation" +msgstr "Traduction" + +msgid "(if your name/pseudo is already in the list, there is no need to fill this input)" +msgstr "(si votre nom/pseudo est déja dans la liste, il n'est pas nécessaire de remplir ce champ)" + +msgid "Your email or your website:" +msgstr "Votre email ou votre site internet :" + +msgid "Create the translation files" +msgstr "Créer les fichiers de traduction" + +msgid "Add a new translation" +msgstr "Ajouter une nouvelle traduction" + +msgid "Modifying the translation for this language: %s" +msgstr "Modifier la traduction pour cette langue : %s" + +msgid "Modify the translation files" +msgstr "Modifier les fichiers de traduction" + +msgid "Modify translations" +msgstr "Modifier la traduction" + +msgid "%s sentences have been translated (i.e. %s)." +msgstr "%s phrases ont été traduites (c'est à dire %s)" + +msgid "%s sentences have been translated (i.e. %s) %s %s sentences have to be checked because they are close (but not identical) to those to translate.%s" +msgstr "%s phrases ont été traduites (c'est à dire %s) %s %s phrases doivent être vérifiées car elles sont proches (mais pas identiques) à celles, devant être traduites.%s" + +msgid "The translation %s have been sent" +msgstr "La traduction %s a été envoyée" + +msgid "Send translation" +msgstr "Envoyer la traduction" + +msgid "%s file cannot be created for %s as there is no translated sentence. Please, translate at least one sentence to create a file" +msgstr "Impossible de créer le fichier %s pour %s car il n'y a aucune phrase traduite. La traduction s'il vous plaît, au moins une phrase pour créer un fichier" + +msgid "%s file has been updated for %s" +msgstr "Le fichier %s a été mis à jour pour %s" + +msgid "%s file has been updated from this file" +msgstr "Le fichier %s a été mis à jour à partir de ce fichier" + +msgid "%s file has been created with a new translation for %s" +msgstr "Le fichier %s a été créé pour %s" + +msgid "%s file has been created from this file" +msgstr "Le fichier %s a été créé à partir de ce fichier" + +msgid "If you do not want to loose your translations on the next upgrading of this plugin, it is recommended to send the translation files to the author by clicking %s here %s !" +msgstr "Si vous ne voulez pas perdre vos traductions à la prochaine mise à jour du plugin, il est recommandé d'envoyer le fichier de traduction à l'auteur en cliquant %s ici %s" + +msgid "If you do not want to loose your translations on the next upgrading of this plugin, please save them on your hard disk before upgrading and then restore them after the upgrade !" +msgstr "Si vous ne voulez pas perdre vos traductions à la prochaine mise à jour du plugin, merci de les sauver sur votre disque dur avant de mettre à jour et de les restaurer après !" + +msgid "Confirmation" +msgstr "Confirmation" + +msgid "Summary cached %s" +msgstr "Sommaire %s mis en cache" + +msgid "The sentences used in this plugin are in English. Help the others users using the same language as you by translating this plugin." +msgstr "Les phrases utilisées dans ce plugin sont en anglais. Aidez les autres utilisateurs utilisant la même langue que vous en traduisant ce plugin." + +msgid "This plugin is available in %s languages." +msgstr "Le plugin est fonctionnel dans %s langues" + +msgid "There are %s sentences to be translated in this plugin." +msgstr "Il y a %s de phrases qui ont encore besoin d'être traduites" + +msgid "Language" +msgstr "Langues" + +msgid "Ratio %" +msgstr "Ratio %" + +msgid "Translators" +msgstr "Traducteurs" + +msgid "This is the default language of the plugin. It cannot be modified." +msgstr "C'est la langue par défaut du plugin. Il ne peut pas être modifié." + +msgid "Modify" +msgstr "Modifier" + +msgid "Send to the author of the plugin" +msgstr "Envoyer à l'auteur du plugin" + +msgid "You may add a new translation hereafter (Please note that it is recommended to send your translation to the author so that he would be able to add your translation to the future release of the plugin !)" +msgstr "Vous pouvez ajouter une nouvelle traduction ci-après (il est recommandé d'envoyer votre traduction à l'auteur afin qu'il puisse l'ajouter dans la prochaine version du plugin !)" + +msgid "Add" +msgstr "Ajouter" + +msgid "The 'SL framework' is a framework used for developping many plugins like this one. Thus, if you participate translating the framework, it will be very helpful for a bunch of plugins." +msgstr "Le 'SL framework' est un framework utilisé pour développer beaucoup d'autres plugins comme celui-ci. Ainsi, si vous participez à traduire ce framework, cela sera bénéfique pour beaucoup de plugins." + +msgid "Send to the author of the framework" +msgstr "Envoyer à l'auteur du framework" + +msgid "KB" +msgstr "Ko" + +msgid "MB" +msgstr "Mo" + +msgid "GB" +msgstr "Go" + +msgid "The file %s cannot be read. You should have a problem with file permissions or security restrictions." +msgstr "Le fichier %s ne peut pas être lu. Vous avez probablement un problème de droit sur ce fichier et des restrictions de sécurité." + +msgid "An other process is still running (it runs for %s seconds)" +msgstr "Un autre processus est en cours d'exécution (il tourne depuis %s seconds)" + +msgid "The file %s cannot be modified/created. You should have a problem with file permissions or security restrictions." +msgstr "Le fichier %s ne peut pas être modifié/créé. Vous avez probablement un problème de droit sur ce fichier et des restrictions de sécurité." + +msgid "The file %s cannot be created. You should have a problem with file permissions or security restrictions." +msgstr "Le fichier %s ne peut pas être créé. Vous avez probablement un problème de droit sur ce fichier et des restrictions de sécurité." + +msgid "The file %s cannot be modified. You should have a problem with file permissions or security restrictions." +msgstr "Le fichier %s ne peut pas être modifié. Vous avez probablement un problème de droit sur ce fichier et des restrictions de sécurité." + +msgid "The file %s cannot be deleted. You should have a problem with file permissions or security restrictions." +msgstr "Le fichier %s ne peut pas être effacé. Vous avez probablement un problème de droit sur ce fichier et des restrictions de sécurité." + +msgid "Error: %s function is not found" +msgstr "Erreur : la fonction %s n'est pas trouvée" + +msgid "The folder %s cannot be opened. You should have a problem with folder permissions or security restrictions." +msgstr "Le répertoire %s ne peut pas être ouvert. Vous avez probablement un problème de droit sur ce répertoire et des restrictions de sécurité." + +msgid "The file %s cannot be compressed." +msgstr "Le fichier %s ne peut pas être compressé." + +msgid "The file %s cannot be renamed. You should have a problem with file permissions or security restrictions." +msgstr "Le fichier %s ne peut pas être renommé. Vous avez probablement un problème de droit sur ce fichier et des restrictions de sécurité." + +msgid "The following plugins have been developed by the author and are not yet been installed:" +msgstr "Les plugins suivants ont été développés par l'auteur et n'ont pas encore été installés:" + +msgid "There is %s languages supported for the 'SL framework'." +msgstr "%s phrases sont prises en charge par le 'SL framework'" + +msgid "There is %s sentence to be translated in the framework." +msgstr "%s phrases sont à traduire dans le framework" + diff --git a/core/lang/SL_framework-he_IL.mo b/core/lang/SL_framework-he_IL.mo new file mode 100644 index 0000000000000000000000000000000000000000..aadc7b396bd3c3729f63749d07b70210aaad43b1 GIT binary patch literal 2559 zcmZ{jO=w(I6vuD1wOXy#6u&KAsC6NxSgQylQrblNVJfv>Qm7v{S#32%t7h? z8g78UK>4jer24o9lG3b)(*1a0Z!YXoVfR4g-vxF5FjRjB3%d^aH}CT$zYn4EPQ!KZ z^TPfCs&7}J{H{UOxB9kLybVzMo1yZ&0C6#U;1lo=l->`D{o~O07iumSq2Aq3@Gf{2 zZtaij*~X0<%|4f9)o3s^y)G>$)mm1KBhyz+GaC=seSNkT)(5LmYIej&Z5G>#JL1B) zW`p8ji|GsSt=B3+=1OL-8%SI_WDdF{C6JBk!~HHX`-hw@*OSCWna$i=nb{L0!LZBl zG6#dO?oxBWM=*WyppCtV)a;DXEC@qaSrYM*4<}`n_-GWyL8WAR!Z>xd7T4-Eiit88 zm7SDkNf4zWs?7dkrOFP)^~6TxF140!IH-m;PV6xq9CiI^Rdw_vj+-_^cRP;C8K{Ox z-5pn|1IPa7aF6eod1WZbY&G>x71v)Mw4pjzqFvEoJs5OUHxMVof$w*(3u%VgIb4gA z%H$UREs!p>;_@CC{1N+syWD$UYJ<&C1e?*f*qC$WVeCPLS6= zDqd)fx5XjCNeAW`>ln;5fq)@Z@On%moXMsTDmavLPmT{Ji zykS|)aB-SjQ#UA@<&u(;dnvy3&mmBvr}!YU0Y-JTna@i=OZ0iu&ZQI+T<}FB>KtmY zEg5wcb!P}Tmrp8{!ZmT03wb-1i#kNQ{D?B`^NdJ<0-sPoTB|QE89L>2%;zI4r=)5r zsOp-?PkUF3=83kCN?7umL&+$T(6@j>@{Eva3jcA^OYpdqPq8_x#i@MWV2wzO?31mg z_{uH*GaUMvw|c>4X`9uN57m*n5NKMh?MSRH>qVUJs7HMq%NIK;W;&LM(XMfzbf-;c zlNw~6^gTcmwaCjqLSI)yFH28u40)8Krf3=?dOkC##X+Ty0P>78iH596Jtl2V5sdR< zRGQ*EdyHCLJ0m^Co3S{~OR0Ls=A!Snejm;5O={t&;%Ekb(eZ1s9O|`=`FOso7xGbw bS^7cU;Nr{lK1(lRmJxZS{$;65-&*r8f!D5a literal 0 HcmV?d00001 diff --git a/core/lang/SL_framework-he_IL.po b/core/lang/SL_framework-he_IL.po new file mode 100644 index 0000000..e059f42 --- /dev/null +++ b/core/lang/SL_framework-he_IL.po @@ -0,0 +1,736 @@ +msgid "" +msgstr "" +"Generated: SL Framework (http://www.sedlex.fr)\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2012-05-31T17:02:41+00:00\n" +"Last-Translator: HOSTPRESS.CO.IL \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Poedit-Language: Hebrew\n" +"X-Poedit-Country: Israel\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-KeywordsList: __;\n" +"X-Poedit-Basepath: \n" +"X-Poedit-Bookmarks: \n" +"X-Poedit-SearchPath-0: .\n" +"X-Textdomain-Support: yes\n" + +msgid "About..." +msgstr "אודות" + +msgid "Settings" +msgstr "הגדרות" + +msgid "Log options" +msgstr "אפשרויות לוג" + +msgid "What is the debug level:" +msgstr "רמת בדיקה:" + +msgid "See the debug logs" +msgstr "לוג בדיקה" + +msgid "1=log only the critical errors;" +msgstr "שמור לוג רק עבור שגיאות-1" + +msgid "2=log only the critical errors and the standard errors;" +msgstr "" + +msgid "3=log only the critical errors, the standard errors and the warnings;" +msgstr "" + +msgid "4=log information;" +msgstr "" + +msgid "5=log verbose;" +msgstr "" + +msgid "Multisite Management" +msgstr "" + +msgid "Do you want to allow sub-blogs to modify the translations of the plugins:" +msgstr "" + +msgid "If this option is unchecked, the translation tab won't be displayed in the blog administration panel." +msgstr "" + +msgid "Advanced options" +msgstr "הגדרות מתקדמות" + +msgid "Show the advanced options:" +msgstr "הצג הגדרות מתקדמות:" + +msgid "Will display additionnal information on the plugin (including SVN features). Recommended for developpers which develop plugins with this framework." +msgstr "" + +msgid "Show the developpers documentation:" +msgstr "הצג קבצי עזרה" + +msgid "You should register a new wordpress plugin first on %s." +msgstr "" + +msgid "What is your SVN Login:" +msgstr "" + +msgid "You should have an account on %s before. Thus, the login will be the same!" +msgstr "" + +msgid "What is your SVN Password:" +msgstr "" + +msgid "Same comment as above..." +msgstr "" + +msgid "What is your Author Name:" +msgstr "" + +msgid "Your author name is the name that is displayed in your plugin." +msgstr "" + +msgid "Do you want to udate the translations files when the plugin page is called:" +msgstr "" + +msgid "This is useful if you develop a plugin, thus you will see when new sentences need to be translated." +msgstr "" + +msgid "IMAP Login:" +msgstr "" + +msgid "This is useful if you want that the framework retrieve automatically the translations file into an IMAP mailbox" +msgstr "" + +msgid "IMAP Password:" +msgstr "" + +msgid "IMAP Server:" +msgstr "" + +msgid "Should be something like %s" +msgstr "" + +msgid "Summary page for the plugins developped with the SL framework" +msgstr "" + +msgid "The core file used for the SedLex plugins is:" +msgstr "" + +msgid "For now, you have installed %d plugins including %d plugins developped with the 'SL framework':" +msgstr "" + +msgid "Plugin name" +msgstr "שם התוסף" + +msgid "Description" +msgstr "תאור" + +msgid "SVN Management" +msgstr "" + +msgid "There is a SQL database for this plugin" +msgstr "" + +msgid "Version: %s by %s" +msgstr "" + +msgid "Getting SVN information..." +msgstr "" + +msgid "List of SL plugins" +msgstr "רשימת תוספים" + +msgid "Parameters of the framework" +msgstr "" + +msgid "The following description is a quick tutorial on about how to create a plugin with the SL framework. (Please note that the following description is in English for developpers, sorry for this inconvenience)" +msgstr "" + +msgid "How to develop a plugin?" +msgstr "כיצד לפתח תוסף?" + +msgid "Framework documentation" +msgstr "" + +msgid "Manage translation of the framework" +msgstr "" + +msgid "An Unexpected HTTP Error occurred during the API request." +msgstr "" + +msgid "This plugin does not seem to be hosted on the wordpress repository." +msgstr "" + +msgid "The Wordpress page: %s" +msgstr "" + +msgid "Last update:" +msgstr "עדכון אחרון:" + +msgid "Rating: %s" +msgstr "" + +msgid "by %s persons" +msgstr "" + +msgid "Number of download: %s" +msgstr "" + +msgid "An error occured when retrieving the version of the plugin on Wordpress.org. Please retry!" +msgstr "" + +msgid "Update of the core ..." +msgstr "" + +msgid "1) Update with the core of the %s plugin" +msgstr "" + +msgid "1) The core of the plugin is up-to-date" +msgstr "" + +msgid "2) Modify the version (but the files of plugin are unchanged)" +msgstr "" + +msgid "2) Modify the version (the files of the plugin have been changed)" +msgstr "" + +msgid "2) Modify the readme.txt (as the version has been already changed)" +msgstr "" + +msgid "3) Update the SVN repository (without modifying the version)" +msgstr "" + +msgid "3) Update the SVN repository (and release a new version %s)" +msgstr "" + +msgid "Refresh" +msgstr "רענן" + +msgid "Change the plugin version for %s" +msgstr "" + +msgid "Version number" +msgstr "גרסה מספר" + +msgid "The current version of the plugin %s is %s." +msgstr "" + +msgid "Please modify the version:" +msgstr "" + +msgid "Readme file" +msgstr "" + +msgid "The current content of %s is:" +msgstr "" + +msgid "The current text" +msgstr "המלל הנוכחי" + +msgid "The proposed text" +msgstr "" + +msgid "Save these data" +msgstr "" + +msgid "There is a problem with the header of %s. It appears that there is no Version header." +msgstr "" + +msgid "The data has been saved. You may close this window." +msgstr "" + +msgid "The folder %s is not %s !" +msgstr "" + +msgid "The file %s is not %s !" +msgstr "" + +msgid "The folder %s does not exists and cannot be created !" +msgstr "" + +msgid "The file %s does not exists and cannot be created !" +msgstr "" + +msgid "There are some issues with folders rights. Please corret them as soon as possible as they could induce bugs and instabilities." +msgstr "" + +msgid "Please see below:" +msgstr "" + +msgid "Error: the submitted value is not an integer and thus, the parameter has not been updated!" +msgstr "" + +msgid "Error: the submitted string does not match the constrains" +msgstr "" + +msgid "Error: the submitted file can not be uploaded!" +msgstr "" + +msgid "Error: security issue!" +msgstr "" + +msgid "Parameters" +msgstr "הגדרות" + +msgid "Here are the parameters of the plugin. Modify them at will to fit your needs." +msgstr "" + +msgid "Here are the parameters of the framework. Modify them at will to fit your needs." +msgstr "" + +msgid "Values" +msgstr "ערכים" + +msgid "Warning: some characters have been removed because they are not allowed here" +msgstr "" + +msgid "(integer)" +msgstr "" + +msgid "(If you want to delete this file, please check this box %s)" +msgstr "" + +msgid "Update" +msgstr "עדכון" + +msgid "Some parameters have not been updated due to errors (see below)!" +msgstr "" + +msgid "Parameters have been updated (but with some warnings)!" +msgstr "" + +msgid "Parameters have been updated successfully!" +msgstr "" + +msgid "Error: %s function is not found" +msgstr "" + +msgid "The file %s cannot be read. You should have a problem with file permissions or security restrictions." +msgstr "" + +msgid "The file %s cannot be deleted. You should have a problem with file permissions or security restrictions." +msgstr "" + +msgid "The folder %s cannot be opened. You should have a problem with folder permissions or security restrictions." +msgstr "" + +msgid "An other process is still running (it runs for %s seconds)" +msgstr "" + +msgid "The file %s cannot be modified/created. You should have a problem with file permissions or security restrictions." +msgstr "" + +msgid "The file %s cannot be created. You should have a problem with file permissions or security restrictions." +msgstr "" + +msgid "The file %s cannot be compressed." +msgstr "" + +msgid "The file %s cannot be renamed. You should have a problem with file permissions or security restrictions." +msgstr "" + +msgid "Plugins that you may install" +msgstr "" + +msgid "The following plugins have been developed by the author and are not yet installed:" +msgstr "" + +msgid "Plugin not yet installed" +msgstr "" + +msgid "Description and Screenshots" +msgstr "" + +msgid "All author's plugins have been installed. Thank you!" +msgstr "" + +msgid "Installed plugins" +msgstr "התקן תוסף" + +msgid "You have already installed the following author's plugins:" +msgstr "" + +msgid "Plugin already installed" +msgstr "" + +msgid "Number of download:" +msgstr "מספר הורדות:" + +msgid "The file %s cannot be modified. You should have a problem with file permissions or security restrictions." +msgstr "" + +msgid "Close popup" +msgstr "סגור חלון" + +msgid "Here, you may configure three levels of translations: at the plugin level, at the framework level, and at the dashboard level." +msgstr "" + +msgid "Please be informed that your current language is %s. Text will be translated if a translation is available." +msgstr "" + +msgid "Translations available for this plugin (i.e. %s)" +msgstr "" + +msgid "Translations available for the SL framework (stored in %s)" +msgstr "" + +msgid "Translations installed for Wordpress" +msgstr "" + +msgid "Adding a new translation for this language: %s" +msgstr "" + +msgid "Sentence to translate" +msgstr "משפטים לתרגום" + +msgid "Translation" +msgstr "תרגום" + +msgid "Your name:" +msgstr "שם פרטי:" + +msgid "(if your name/pseudo is already in the list, there is no need to fill this input)" +msgstr "" + +msgid "Your email or your website:" +msgstr "כתובת דואר או אתר" + +msgid "Create the translation files" +msgstr "צור קבצי תרגום" + +msgid "Modifying the translation for this language: %s" +msgstr "" + +msgid "Modify the translation files" +msgstr "ערוך את קובצי התרגום" + +msgid "The file %s cannot be extracted from mail attachments" +msgstr "" + +msgid "The file %s cannot be written in the %s folder" +msgstr "" + +msgid "The file %s has been imported in the %s folder" +msgstr "" + +msgid "Plugin" +msgstr "פלגין" + +msgid "Language" +msgstr "שפה" + +msgid "Information" +msgstr "מידע" + +msgid "%s sentences have been translated (i.e. %s)." +msgstr "" + +msgid "Delete" +msgstr "מחק" + +msgid "Import" +msgstr "יבוא" + +msgid "%s sentences have been newly translated and %s sentences have been modified (the old file has %s translated sentences)." +msgstr "" + +msgid "See modifications and Merge" +msgstr "" + +msgid "Merge" +msgstr "מזג" + +msgid "New translations are available" +msgstr "" + +msgid "Updates of translations are available" +msgstr "" + +msgid "What are the differences between these two files?" +msgstr "" + +msgid "Old sentence" +msgstr "" + +msgid "New sentence" +msgstr "" + +msgid "To replace?" +msgstr "" + +msgid "%s sentences have been translated (i.e. %s) %s %s sentences have to be checked because they are close (but not identical) to those to translate.%s" +msgstr "" + +msgid "The translation %s have been sent" +msgstr "" + +msgid "An error occured sending the email." +msgstr "" + +msgid "Make sure that your wordpress is able to send email." +msgstr "" + +msgid "%s file has been updated for %s" +msgstr "" + +msgid "%s file has been updated from this file" +msgstr "" + +msgid "%s file has been created with a new translation for %s" +msgstr "" + +msgid "%s file has been created from this file" +msgstr "" + +msgid "If you do not want to loose your translations on the next upgrading of this plugin, it is recommended to send the translation files to the author by clicking %s here %s !" +msgstr "" + +msgid "If you do not want to loose your translations on the next upgrading of this plugin, please save them on your hard disk before upgrading and then restore them after the upgrade !" +msgstr "" + +msgid "The following languages may be used by your Wordpress installation." +msgstr "" + +msgid "There is a need to update the list of available translation at the Wordpress repository because no information are available for the version of Wordpress (i.e. %s)." +msgstr "" + +msgid "Update the list of translations" +msgstr "" + +msgid "This is the default language of the plugin. It cannot be modified." +msgstr "" + +msgid "Re-download" +msgstr "הורד שנית" + +msgid "Last update: %s" +msgstr "" + +msgid "Download a new translation" +msgstr "" + +msgid "You may download a new translation from Wordpress.org" +msgstr "" + +msgid "Download" +msgstr "הורדה" + +msgid "Change the default language used" +msgstr "" + +msgid "If you want to modify the default language of the dashboad, and thus of the plugin, please select your language here:" +msgstr "" + +msgid "Set the language" +msgstr "קבע שפה" + +msgid "The file %s has been downloaded (version %s)" +msgstr "" + +msgid "The file %s cannot be stored in %s. Check permissions." +msgstr "" + +msgid "The translations files do not exists ... it is strange!" +msgstr "" + +msgid "The sentences used in this plugin are in English. Help the others users using the same language as you by translating this plugin." +msgstr "" + +msgid "This plugin is available in %d languages." +msgstr "" + +msgid "There are %d sentences to be translated in this plugin." +msgstr "" + +msgid "Ratio %" +msgstr "" + +msgid "Translators" +msgstr "תרגום" + +msgid "Modify" +msgstr "ערוך" + +msgid "Send to the author of the plugin" +msgstr "" + +msgid "Add a new translation" +msgstr "הוסף תרגום חדש" + +msgid "You may add a new translation hereafter (Please note that it is recommended to send your translation to the author so that he would be able to add your translation to the future release of the plugin !)" +msgstr "" + +msgid "Add" +msgstr "" + +msgid "The 'SL framework' is a framework used for developping many plugins like this one. Thus, if you participate translating the framework, it will be very helpful for a bunch of plugins." +msgstr "" + +msgid "There is %d languages supported for the 'SL framework'." +msgstr "" + +msgid "There is %d sentence to be translated in the framework." +msgstr "" + +msgid "This is the default language of the plugin framework. It cannot be modified." +msgstr "" + +msgid "Send to the author of the framework" +msgstr "" + +msgid "Feedback form" +msgstr "" + +msgid "This form is an easy way to contact the author and to discuss issues/incompatibilities/etc. with him" +msgstr "" + +msgid "Contact the author" +msgstr "צור קשר עם העורך" + +msgid "Your email:" +msgstr "דואר אלקטרוני:" + +msgid "Useful... so that the author will be able to anwser you." +msgstr "" + +msgid "Your comments:" +msgstr "הערות:" + +msgid "Please note that additional information on your wordpress installation will be sent to the author in order to help the debugging if needed (such as : the wordpress version, the installed plugins, etc.)" +msgstr "" + +msgid "Send feedback" +msgstr "שלח פידבק" + +msgid "No email have been provided for the author of this plugin. Therefore, the feedback is impossible" +msgstr "" + +msgid "The feedback has been sent" +msgstr "התגובה נשלחה" + +msgid "Select all" +msgstr "בחר הכל" + +msgid "Un-select all" +msgstr "בטל בחירה" + +msgid "Saved on %s" +msgstr "" + +msgid "No cache file found... Regenerating one!" +msgstr "" + +msgid "PHP Doc for the SL Framework" +msgstr "" + +msgid "Here are the classes of the SL framework:" +msgstr "" + +msgid "Here is the method of the class:" +msgstr "" + +msgid "Methods" +msgstr "" + +msgid "Details" +msgstr "פרטים" + +msgid "[METHOD]" +msgstr "" + +msgid "Parameters:" +msgstr "" + +msgid "[optional]" +msgstr "" + +msgid "(by default, its value is:" +msgstr "" + +msgid "No param" +msgstr "" + +msgid "Return value:" +msgstr "" + +msgid "Typical call:" +msgstr "" + +msgid "See also:" +msgstr "" + +msgid "[CLASS]" +msgstr "" + +msgid "KB" +msgstr "קילו" + +msgid "MB" +msgstr "מגה" + +msgid "GB" +msgstr "גיגה" + +msgid "Your credentials do not seem to be correct. Please check them!" +msgstr "" + +msgid "This file have not been written in the repository due to server problem. Nevertheless, you should retry as it often works better with a second try !" +msgstr "" + +msgid "SVN client for %s" +msgstr "" + +msgid "Updating the local cache" +msgstr "" + +msgid "folder created" +msgstr "" + +msgid "folder creation has failed !" +msgstr "" + +msgid "%s bytes transfered" +msgstr "" + +msgid "An error occurred during the retrieval of files on the server ! Sorry ..." +msgstr "" + +msgid "Local to SVN repository" +msgstr "" + +msgid "Comparing %s with %s" +msgstr "" + +msgid "Confirmation" +msgstr "" + +msgid "Commit comment:" +msgstr "" + +msgid "Yes, the SVN version will be deleted and be replaced by the local version" +msgstr "" + +msgid "SVN repository to Local" +msgstr "" + +msgid "Yes, the local version will be overwritten with the repository files" +msgstr "" + +msgid "Sending to the repository in progress..." +msgstr "" + +msgid "The commit has ended [ %s ]... You should received an email quickly ! You may close the window or wait for the automatic closing." +msgstr "" + +msgid "The commit has ended but there is an error!" +msgstr "" + +msgid "Sending to the local files in progress..." +msgstr "" + +msgid "The rollback has ended ..." +msgstr "" + diff --git a/core/lang/SL_framework-hr_HR.mo b/core/lang/SL_framework-hr_HR.mo new file mode 100644 index 0000000000000000000000000000000000000000..31f6ce248d73a6eeab12cd285a512df254e0f02c GIT binary patch literal 14215 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%0DkCYxY+6(7fWK;ep-3A$Mxe z`q&{n{qw8VLx^XneiO#d1$r~n^%Jk$p^aJSCEB?<>c$K(0%$W6K2!$KN|31(kbIX6 zQv5S*6%$DasGBja<*<7QZ(0AOjtI6VJ&BDtUN_^r%OA5$BLs5TAq;NAaNWFej+UsY z$%8muC#KlM_;2RNBG77WH66$^4B1(Tq1A4;Ylvd}ZCstxUb1%H_;hT?=&%8kek~w%hPl zEliG9)N4PpqTYtVF^ttzNTJecw0lfLVyr}P!maK;joycKFnY_~?mR6CDUP5k_IHxq ztnoXqR_9(0o=l5uruxlBv;r7MgZRk&Rtn}ExsU(V`sm(k6ZxJUl*4Vh=6Z5(#a-b@ z`U*=@0-zmDP#Cd9%SN78d7_CWHJZ76S9q*e5q$IN6vKQ%Lt=q$mJ98^LV23e*IP5G zeBcZ!FHHja9i5jC#96W9s16**9Tm#SMUfpjF3^hJuhU+#)Dg5I*P?IC-9ud#SBR8^H!0OA?lY9>p^FROVsWA=#`U??mnIA@ z2#v5Ff<;vDc{{s#!t;EGh3I|mmWn#%T-&_PEzSXZogBM_Hh|cm9o(~4qRvfK=Wea- z?%Uo#_Qw)2S7BqmKTzdrLte#*&IHL4%g?#hiJe=LyZAzPLq8UwE^AWHtxj$<*P>H5 zu0Lo4XSE?u*7W_JTcb^~P^L^+01n9A1<^@mezn5POZFJ+=RkA+&#TIL+BD=}D4oy( zzg`Fz5XCjycGLKoo}O#u=5zS2c-sKwY(|%t4Rh$hhgp17Q5AiIMir@QvP6BjhVi?8 zv*xC%hWHWPo*?yI8e3McI3u4>Gu^EiP^Ce9g14W}j98+b$}d{i&0VGPTS1*;?@msw zRm_@QdI+7oLL5>utPvHpDC= zB{mg%z;VgaVn9g6E@X2aRCA%$afpLE^AVX>E^DgE7AZqjTG)W$ean4|HL{!E6K)(x zaiB_|(Sf=l-XmVqDipNYeTXd!d`v}p>gNsCqcdt0L+5N|jU-oN5eVDbyD_%0HE&rw zau}7qZH?`Re9<^B z|GL;ST+{6?3aM(@O$vI}ZN_^aLD3CI!lujQyiMY8A^K~u&?B~au)vJro`ciu>{C;| zP36m_c3#ghVGp&`;r6{j>Fe^*QaheZc~pRDywD0q(8rri+r1u5>Mc#_3DScfj`w0u zC{4;uxQ*NiLbFDMORYdGE@q0*_CV`1>iMk3ipzbTG?W1GslAi=JS=ExoQP#%9)6@N2}z+6+s}h8rQWw@riwoJ{CLFOV}S zUvX!BXnf~E7_&Tc)-e)di^C4r@~rF-b(5a^4Pb?4Qc?spO0=4V<*{aDV%=jI9Z^#J zffo-xU_lp&yFPf{F4qk3m=ZIr@*~{>cvQD{218bjJF!~2;wMM@KCzMPe3FG7HKkCX zi*90+uq6_F|HpWUe@u^9JubO}@tfK(9yE#+{Vp2;bB=yML}$m>J_UuiKg!Af$XqO^ Xc-j1&`&j{LaWk`fXgk7I@Vfs2sfgP2 literal 0 HcmV?d00001 diff --git a/core/lang/SL_framework-hr_HR.po b/core/lang/SL_framework-hr_HR.po new file mode 100644 index 0000000..d93fbc3 --- /dev/null +++ b/core/lang/SL_framework-hr_HR.po @@ -0,0 +1,408 @@ +msgid "" +msgstr "" +"Generated: SL Framework (http://www.sedlex.fr)\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2014-03-06T15:30:13+00:00\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Poedit-Language: Croatian\n" +"X-Poedit-Country: Croatia\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-KeywordsList: __;\n" +"X-Poedit-Basepath: \n" +"X-Poedit-Bookmarks: \n" +"X-Poedit-SearchPath-0: .\n" +"X-Textdomain-Support: yes\n" + +msgid "About..." +msgstr "O ..." + +msgid "Settings" +msgstr "Postavke" + +msgid "Log options" +msgstr "Prijava opcija" + +msgid "What is the debug level:" +msgstr "Što jerazina debug :" + +msgid "See the debug logs" +msgstr "Pogledajte debug dnevnike" + +msgid "1=log only the critical errors;" +msgstr "1 = log samo kritične pogreške ;" + +msgid "2=log only the critical errors and the standard errors;" +msgstr "2 = prijavite samo kritične pogreške i standardne pogreške" + +msgid "3=log only the critical errors, the standard errors and the warnings;" +msgstr "3 = prijavite samo kritične pogreške, standardne pogreške i upozorenja ;" + +msgid "4=log information;" +msgstr "4 = log informacije ;" + +msgid "5=log verbose;" +msgstr "5 = prijavite preopširan ;" + +msgid "Multisite Management" +msgstr "Višestranično upravljanje" + +msgid "Do you want to allow sub-blogs to modify the translations of the plugins:" +msgstr "Želite li dopustiti da pod- blogovi izmijeniti prijevode dodataka:" + +msgid "If this option is unchecked, the translation tab won't be displayed in the blog administration panel." +msgstr "Ako je ova opcija ne potvrdi,tab prijevod neće biti prikazan na ploči blog uprave" + +msgid "Summary page for the plugins developped with the SL framework" +msgstr ") stranica Sažetak za dodataka razvijen s SL okviru" + +msgid "For now, you have installed %s plugins including %s plugins developped with the SedLex's framework" +msgstr "Za sada , imate instaliran %s dodataka uključujući %s inovi razvijen s SedLex u okviru" + +msgid "The core plugin is located at %s" +msgstr "jezgra plugin se nalazi na %s" + +msgid "Plugin name" +msgstr "Plugin Naziv" + +msgid "Description" +msgstr "Opis" + +msgid "There is a SQL database for this plugin" +msgstr "Tu jeSQL baza podataka za ovaj dodatak" + +msgid "Version: %s by %s" +msgstr "Verzija : %s od %s" + +msgid "List of SL plugins" +msgstr "Popis slalomskih dodataka" + +msgid "Parameters of the framework" +msgstr "Parametri okviru" + +msgid "Manage translation of the framework" +msgstr "Upravljanje prijevod okviru" + +msgid "The folder %s is not %s !" +msgstr "mape %s nije %s !" + +msgid "The file %s is not %s !" +msgstr "datoteka%s ne %s !" + +msgid "The folder %s does not exists and cannot be created !" +msgstr "mape %s ne postoji i ne može biti stvoren !" + +msgid "The file %s does not exists and cannot be created !" +msgstr "Datoteka%s ne postoji i ne može biti stvoren !" + +msgid "There are some issues with folders rights. Please corret them as soon as possible as they could induce bugs and instabilities." +msgstr "Postoje neka pitanja s mapama prava . Molimo corret ih što je prije moguće kako bi mogli izazvati bugova i nestabilnosti" + +msgid "Please see below:" +msgstr "U nastavku pogledajte :" + +msgid "Filter: %s" +msgstr "Filter : %s" + +msgid "%s of %s" +msgstr "%s od %s" + +msgid "Current Page" +msgstr "Trenutni Page" + +msgid "Donate" +msgstr "Donirajte" + +msgid "If you like the plugin, do not hesitate to donate. Please note that this plugin is developed in my spare time for free." +msgstr "Ako vam se sviđa plugin , ne ustručavajte se donirati . Imajte na umu da je ovaj plugin je razvijen u svoje slobodno vrijeme besplatno" + +msgid "This is not mandatory! but it may be a sign that this plugin fits you needs: it makes me happy..." +msgstr "Ovo nije obavezno ! ali to može bitiznak da je ovaj plugin uklapa li treba : to me čini sretnim ..." + +msgid "Feedback form" +msgstr "Obrazac ocjene" + +msgid "This form is an easy way to contact the author and to discuss issues/incompatibilities/etc. with him" +msgstr "Obrazac jejednostavan način da se obratite autoru i raspraviti pitanja / neusklađenosti / etc . s njim" + +msgid "Contact the author" +msgstr "Kontaktirajte autora" + +msgid "Your name:" +msgstr "Vaše ime :" + +msgid "Your email:" +msgstr "Vaš e-mail :" + +msgid "Useful... so that the author will be able to anwser you." +msgstr "Korisno ... tako da autor će biti u mogućnosti da vas anwser ." + +msgid "Your comments:" +msgstr "Vaši komentari :" + +msgid "Please note that additional information on your wordpress installation will be sent to the author in order to help the debugging if needed (such as : the wordpress version, the installed plugins, etc.)" +msgstr "Imajte na umu da su dodatne informacije o instalaciji WordPress će biti poslana na autora kako bi pomogli ispravljanje pogrešaka , ako je potrebno ( kao što su : Wordpress verziji , instaliranih dodataka , itd. )" + +msgid "Send feedback" +msgstr "Pošaljite svoje mišljenje" + +msgid "No email have been provided for the author of this plugin. Therefore, the feedback is impossible" +msgstr "Ne e su osigurana za autora ovog dodatka . Dakle ,komentar je nemoguće" + +msgid "The feedback has been sent" +msgstr "povratne informacije je poslan" + +msgid "An error occured sending the email." +msgstr "Došlo je do pogreške prilikom slanja poruke e-pošte." + +msgid "Make sure that your wordpress is able to send email." +msgstr "Pobrinite se da vaš WordPress je u mogućnosti poslati e-mail ." + +msgid "Plugins that you may install" +msgstr "Plugins da mogu instalirati" + +msgid "The following plugins have been developed by the author and are not yet been installed:" +msgstr "Sljedeći dodataka su razvijeni od strane autora , a još nije instaliran :" + +msgid "Plugin not yet installed" +msgstr "Plugin još nije instaliran" + +msgid "Description and Screenshots" +msgstr "opis i Slike" + +msgid "All author's plugins have been installed. Thank you!" +msgstr "Svi autorski dodaci su instalirani . Hvala vam !" + +msgid "Installed plugins" +msgstr "Instalirani dodataka" + +msgid "You have already installed the following author's plugins:" +msgstr "Već ste instalirali o autoru dodaci :" + +msgid "Plugin already installed" +msgstr "Plugin već instaliran" + +msgid "The Wordpress page: %s" +msgstr "Wordpress stranica : %s" + +msgid "An Unexpected HTTP Error occurred during the API request." +msgstr "Neočekivana HTTP pogreška dogodila tijekom API zahtjeva ." + +msgid "Last update:" +msgstr "Zadnja izmjena :" + +msgid "Rating: %s" +msgstr "ocjena : %s" + +msgid "by %s persons" +msgstr "od strane %s osobama" + +msgid "Number of download:" +msgstr "Broj preuzimanja :" + +msgid "Add new" +msgstr "Dodaj novi" + +msgid "Error: the submitted value is not an integer and thus, the parameter has not been updated!" +msgstr "Pogreška :podnijeti vrijednost nijecijeli broj , a time ,parametar nije ažuriran !" + +msgid "Error: the submitted string does not match the constrains" +msgstr "Pogreška :podnesen niz ne odgovara ograničenjima" + +msgid "Error: the submitted file can not be uploaded!" +msgstr "Pogreška :podnijeti datoteka ne može se učitati !" + +msgid "Error: security issue!" +msgstr "Pogreška : sigurnosni problem !" + +msgid "Parameters" +msgstr "Parametri" + +msgid "Here are the parameters of the plugin. Modify them at will to fit your needs." +msgstr "Ovdje su parametri plugina . Mijenjati ih po volji kako bi odgovarao Vašim potrebama ." + +msgid "Here are the parameters of the framework. Modify them at will to fit your needs." +msgstr "Ovdje su parametri okvira . Mijenjati ih po volji kako bi odgovarao Vašim potrebama ." + +msgid "(Delete)" +msgstr "( Izbriši )" + +msgid "Values" +msgstr "Vrijednosti" + +msgid "Warning: some characters have been removed because they are not allowed here" +msgstr "Upozorenje : neki znakovi su uklonjeni jer ovdje nije dopušteno" + +msgid "(integer)" +msgstr "( cijeli broj )" + +msgid "(If you want to delete this file, please check this box %s)" +msgstr "( Ako želite izbrisati ovu datoteku , provjerite ovaj box %s )" + +msgid "Update" +msgstr "Update" + +msgid "Reset to default values" +msgstr "Vrati na zadane vrijednosti" + +msgid "Some parameters have not been updated due to errors (see below)!" +msgstr "Neki parametri nisu ažurirani zbog pogreške ( vidi dolje ) !" + +msgid "Parameters have been updated (but with some warnings)!" +msgstr "Parametri su ažurirani ( ali s nekim upozorenjima ) !" + +msgid "Parameters have been updated successfully!" +msgstr "Parametri su uspješno ažurirani !" + +msgid "Parameters have been reset to their default values!" +msgstr "Parametri su vraćene na zadane vrijednosti !" + +msgid "Close popup" +msgstr "Zatvori popup" + +msgid "Here, you may configure three levels of translations: at the plugin level, at the framework level, and at the dashboard level." +msgstr "Ovdje možete podesiti na tri razine prijevoda : na razini plugin , na okvirnog razini , tako i na razini armaturne ploče ." + +msgid "Please be informed that your current language is %s. Text will be translated if a translation is available." +msgstr "Obavještavamo vas da je vaš trenutni jezik %s . Tekst će biti preveden akoprijevod je dostupan ." + +msgid "If you want to modify the language, please go in %s and find %s or %s. The second argument is your language and you may modify it as you want." +msgstr "Ako želite promijeniti jezik , molimo idite u %s. i pronaći %s ili %s . Drugi argument je jezik i možete ga mijenjati kako želite ." + +msgid "Translations available for this plugin (i.e. %s)" +msgstr "Prijevodi dostupni za ovaj plugin ( tj. %s )" + +msgid "Translations available for the SL framework (stored in %s)" +msgstr "Prijevodi dostupni za SL okvira ( pohranjene u %s )" + +msgid "Adding a new translation for this language: %s" +msgstr "Dodavanje novog prijevoda za tom jeziku : %s" + +msgid "Sentence to translate" +msgstr "Kazna za prijevod" + +msgid "Translation" +msgstr "Translation" + +msgid "(if your name/pseudo is already in the list, there is no need to fill this input)" +msgstr "( ako je vaše ime / pseudo je već na popisu , nema potrebe da ispunite ovaj ulaz )" + +msgid "Your email or your website:" +msgstr "e-mail ili web stranice :" + +msgid "Create the translation files" +msgstr "Napravite prijevod datoteke" + +msgid "Add a new translation" +msgstr "dodati novi prijevod" + +msgid "Modifying the translation for this language: %s" +msgstr "Mijenjanje prijevod za tom jeziku : %s" + +msgid "The number of occurrence of %s does not match in both string. Please note that the string %s will be replaced with a contextual string." +msgstr "broj pojavljivanja %s ne odgovara u oba niza. Imajte na umu da jeniz%s će biti zamijenjen s kontekstualnim nizu ." + +msgid "Modify the translation files" +msgstr "Izmjena prijevod datoteke" + +msgid "Modify translations" +msgstr "Izmjena prijevode" + +msgid "%s sentences have been translated (i.e. %s)." +msgstr "%s rečenice su prevedene ( tj. %s ) ." + +msgid "%s sentences have been translated (i.e. %s) %s %s sentences have to be checked because they are close (but not identical) to those to translate.%s" +msgstr "%s rečenice su prevedene ( tj. %s ) %s %s kazne moraju biti provjereni , jer su u neposrednoj blizini ( ali ne i identičan ) onima prevesti . %s" + +msgid "The translation %s have been sent" +msgstr "translation %s su poslane" + +msgid "Send translation" +msgstr "Pošalji prijevod" + +msgid "%s file cannot be created for %s as there is no translated sentence. Please, translate at least one sentence to create a file" +msgstr "%s datoteka ne može biti stvoren za%s jer ne postoji prevedena rečenica . Molimo , prevesti barem jednu rečenicu kako bi stvorili datoteku" + +msgid "%s file has been updated for %s" +msgstr "%s datoteka je obnovljeno za %s" + +msgid "%s file has been updated from this file" +msgstr "%s datoteka je izmijenjena od ove datoteke" + +msgid "%s file has been created with a new translation for %s" +msgstr "%s datoteka je stvorena s novim prijevodom za %s" + +msgid "%s file has been created from this file" +msgstr "%s datoteka je stvorena od ove datoteke" + +msgid "If you do not want to loose your translations on the next upgrading of this plugin, it is recommended to send the translation files to the author by clicking %s here %s !" +msgstr "Ako ne želite izgubiti svoje prijevode na sljedećoj nadogradnji ovog dodatka , preporučljivo je poslati prijevod datoteke autoru klikom %s %s" + +msgid "If you do not want to loose your translations on the next upgrading of this plugin, please save them on your hard disk before upgrading and then restore them after the upgrade !" +msgstr "Ako ne želite izgubiti svoje prijevode na sljedećoj nadogradnji ovog dodatka , molimo vas da ih spremiti na vaš hard disk prije nadogradnje , a zatim ih vratiti nakon nadogradnje" + +msgid "Confirmation" +msgstr "Potvrda" + +msgid "Summary cached %s" +msgstr "Profila spremljeno %s" + +msgid "The sentences used in this plugin are in English. Help the others users using the same language as you by translating this plugin." +msgstr "Rečenice koje se koriste u ovom dodatku su na engleskom jeziku . Pomoći ostalima korisnike koristeći isti jezik kao i vi prevođenjem ovog dodatka" + +msgid "This plugin is available in %s languages." +msgstr "Ovaj dodatak je dostupan u %s jezicima ." + +msgid "There are %s sentences to be translated in this plugin." +msgstr "Postoje %s rečenice koje treba prevesti u ovom dodatku ." + +msgid "Language" +msgstr "Jezik" + +msgid "Ratio %" +msgstr "Omjer%" + +msgid "Translators" +msgstr "Prevoditelji" + +msgid "This is the default language of the plugin. It cannot be modified." +msgstr "Ovo je zadani jezik plugina . To se ne može mijenjati ." + +msgid "Modify" +msgstr "Izmijeni" + +msgid "Send to the author of the plugin" +msgstr "Pošalji autoru plugina" + +msgid "You may add a new translation hereafter (Please note that it is recommended to send your translation to the author so that he would be able to add your translation to the future release of the plugin !)" +msgstr "Možete dodati novi prijevod Hereafter ( Imajte na umu da je preporučljivo poslati svoj prijevod na autora , tako da će biti u mogućnosti dodati svoj prijevod na budućim izdanjima plugina" + +msgid "Add" +msgstr "Dodaj" + +msgid "The 'SL framework' is a framework used for developping many plugins like this one. Thus, if you participate translating the framework, it will be very helpful for a bunch of plugins." +msgstr "' SL okvir ' jeokvir koristi za razvija mnogo dodataka kao što je ovaj . Dakle , ako želite sudjelovati prevođenje okvira , to će biti vrlo korisno za hrpu dodataka ." + +msgid "There is %s languages supported for the 'SL framework'." +msgstr "Tu je %s jezici podržani za ' SL okvira ' ." + +msgid "There is %s sentence to be translated in the framework." +msgstr "Postoji %s rečenica koje treba prevesti u okviru ." + +msgid "Send to the author of the framework" +msgstr "Pošalji autoru okviru" + +msgid "KB" +msgstr "KB" + +msgid "MB" +msgstr "MB" + +msgid "GB" +msgstr "GB" + diff --git a/core/lang/SL_framework-hu_HU.mo b/core/lang/SL_framework-hu_HU.mo new file mode 100644 index 0000000000000000000000000000000000000000..f114cf5ebdfd8681862037283810af9f12788293 GIT binary patch literal 4581 zcmb7`+m9Sa6~>ET2=|KW#)dTxK|)YHT{F|}p01&* zdNwl(mnS4%kU)Zmh?hY^(F$2YAXWke3Docc651K$V!7`z|+E%;&Zui!E8-{5`V{clj}9QY7;2JC@f z2cHMU-my0-^+oVw;G^KTzz+BuQ11B`_+Id?yOnwicnsVEKLTC_3y>|U0yn`wfNuux zBj^oq1(f$+0>z&g{2=%o_&E4O@Dt$Qzz4y5IV^rY20j9M@FMsVQ2coXd z0p)oWd=K~t_zbuOei?iL{4{tsq+0L_DEof_VoLoEd_(2R{H_ z1I5n*ya(I`#h+h;r@=piV&|^6E0u$1K>n*A@#`t@r=alrDk$+kiW8ErXF$=**Fa3D z=Rw)`0(cpG85BPse5X>M0ndUgsc*E;-vOaq{RNc!Uj|peqwi|?Jqvz{=Mwx7_{;YB zC9uP@Mg*6@E1>A<2cYQbXW%jLkKncqA<6q*ZMwd8qma1Vt0$bExKi(!Jm}!G$uhU2 zeHopKGS~OAG<0#&o9HmGIus`NnW;}|*Q?h?S=mo=zpkE?=ft;`HGh?PcVN4zjn@vI z*1<%2$K@x2j;xLoKg!I+#yZLCopQG}@i55~&z*9g9+})`9kpE!ho+eD*tfdpie(>k zY{xcpqY;*Nk}#;>ZExycVTN|c6{)(!f!yt^)iDpu*m9!}1kH)#vDR%ctah_9hAdf~ zFCJ$7#IpGl>*{LFhR(TAJz;&fNNS$dwSg_T%xj~!Kf9@80|Ca*BVfI`L|wOqC)#y= z-0Ntp!ZjDQj;O0f0t#%MCt*Lrrw1m;J(8~2MrB`TLdv?@GPzK;l*0c$jF)hl z#kP?9v68zWf31lBx|d}3(DlWM*xBZceHO0?Hjj1JS zLZvUctWI;|ve!k@9|YggS2HWzc3n|eR6VdmZ9KIQ^Tz0L7 zvBvLO7*UcXA+f$gVr!e;vIULptgDMf;fnQ|XzFE{1c_~Iva-&z#B6e`2HS^DVImAl z-&DeAovDuHY`k)~X(~Ykx!`MPLbs84mqI45czpQDI&tKoy@`7=XJWZ% zn{eP@t`sVMZo%7bStMc75WTXbIdxg2EQyeli%=F?Y*gCOTZ_H{{eetnnY5E$5~TX5 zLu+G*y^XbnvhUd7bxDC&Pn#l#uk}VQ-2s$$>yoL-dBGqxF($Wf|AcwVDQ8}&)+Yt|$8EOm2IeZJ1G`keJ5O9$&c zQ)ZzNjaR47OWSjK)-+psM@YIR(^iD$H`KQ1eu?iokb~mUG5W)Hb4af)1bcEhhv<&p zSCi0+POnC#B#EwB*Vj%%pTFHPUv|6J`(Bx4lmBr;F^?C1lj1czZo<7zjX*s09Gf$LB7N55LSurVL7E^VHr*N!pR*V+PX9X(|;omRVkiZgsp>^oTP zc|Wy1*UyYF!ALNfQCm(jP|cF1L3#@9Q#7N-0`#mAi%l`RHx*xx&nIqs(Th|FQ}cj7 zMeC4^whOHrggLhBYSUIX3-UsX9t@yqPUFB$wIu~IfDN5Cs%BGo=Re`Ye3HueohG<{ z+%HEdQ%^1CFWJbLZq@9D;pSUNnmg50X|+qgv5DGBaG}{(Pvkb`eo9jj=MOiroblX1 z&pc5gIk_1hhh{V~b#i%FY1ZmyFZteI+TWImPXww-VSNrx8ac=tI^RJfcXXh!kEv-j z>s7l2#uI(R^&$7cEQ917Q`R+D+@wB-OSrTGiY+8?Nc< zCQGP6rf;2`P;Z3L!eyaMR}Pxv+}_ys>s>uGo8cKBrXtlbT|dK0KCx+T)5XaJ{p=4^ zB|R_v{<|x4w-3=lUiS`SY;8ozG%(PsSwC5DVA|H&NGeqqrC{c|UJA%29lbr}(=z5; z2Va+a3PqoG<|hx=+&(k6H&lJQrkc<%CH)EH4A(Vj9MC@|B36^4{-A}0+1N>|bRm>^ z+Gdx}rJ7cpw9+PNCYV}XP8h?MK8HRG<{aNo)m{Okc|yOCmLOEqOq!n8^gx;A?OS~5 zPo`u^zF<$PExI;ZP}lizoSOYMtqlz#Gb2$B38fR^SSur&GWt)S?|RD5SHH?8&g(%! z+YmwGN?*F*hPogYM2?BPHOSdWaC0v9Np0m;#=-;4$Rx3OLf!7~A+NHGtBkxPwFNCP zbo7;MY>+()l(>a&TqQQym)am@dm9@Ex4_GInG4Adnz{`e58uiL*J~z9X8MOybLLLA xi;+WOT4MO@`DQ>@vo78FR`$=Gmwq#quP|C#T}xCupG()Oy(of12KRy9`5!5$2c`f3 literal 0 HcmV?d00001 diff --git a/core/lang/SL_framework-hu_HU.po b/core/lang/SL_framework-hu_HU.po new file mode 100644 index 0000000..3320890 --- /dev/null +++ b/core/lang/SL_framework-hu_HU.po @@ -0,0 +1,154 @@ +msgid "" +msgstr "" +"Generated: SL Framework (http://www.sedlex.fr)\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2013-02-17T10:04:15+00:00\n" +"Last-Translator: LaszloPinter \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Poedit-Language: Hungarian\n" +"X-Poedit-Country: Hungary\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-KeywordsList: __;\n" +"X-Poedit-Basepath: \n" +"X-Poedit-Bookmarks: \n" +"X-Poedit-SearchPath-0: .\n" +"X-Textdomain-Support: yes\n" + +msgid "Settings" +msgstr "Beállítások" + +msgid "Log options" +msgstr "Napló beállítások" + +msgid "What is the debug level:" +msgstr "Mi a "debug" szint:" + +msgid "See the debug logs" +msgstr "Lásd a "debug" naplókat" + +msgid "1=log only the critical errors;" +msgstr "1=csak súlyos hibákat rögzít;" + +msgid "2=log only the critical errors and the standard errors;" +msgstr "2=csak súlyos és átlagos hibákat rögzít;" + +msgid "3=log only the critical errors, the standard errors and the warnings;" +msgstr "3=csak súlyos és átlagos hibákat és figyelmeztetéseket rögzít;" + +msgid "4=log information;" +msgstr "4=információkat rögzít;" + +msgid "5=log verbose;" +msgstr "5=részletes naplózás;" + +msgid "Multisite Management" +msgstr "Több site karbantartása" + +msgid "Do you want to allow sub-blogs to modify the translations of the plugins:" +msgstr "Engedélyezed, hogy "sub-blogok" is változtathassák a pluginok fordítását?" + +msgid "If this option is unchecked, the translation tab won't be displayed in the blog administration panel." +msgstr "Ha ez nincs bejelölve, akkor a fordítás fül nem lesz látható a blog karbantaró táblán." + +msgid "Summary page for the plugins developped with the SL framework" +msgstr "A SL "framewok"-el készített pluginok összefoglaló oldala" + +msgid "For now, you have installed %d plugins including %d plugins developped with the 'SL framework':" +msgstr "Mostanáig %d plugin-t telepítettél, ezek közül %d plugin készült a SL "framework"el:" + +msgid "Plugin name" +msgstr "A plugin neve:" + +msgid "Description" +msgstr "Leírás:" + +msgid "There is a SQL database for this plugin" +msgstr "Ehhez a pluginhoz egy SQL adatbázis is tartozik" + +msgid "Version: %s by %s" +msgstr "Verzió %s készítette %s" + +msgid "List of SL plugins" +msgstr "SL pluginok listája" + +msgid "Parameters of the framework" +msgstr "A "framework" paraméterei" + +msgid "Manage translation of the framework" +msgstr "A "framework" fordításának karbantartása" + +msgid "The folder %s is not %s !" +msgstr "A %s mappa nem %s !" + +msgid "The file %s is not %s !" +msgstr "A %s file nem %s !" + +msgid "The folder %s does not exists and cannot be created !" +msgstr "A %s mappa nem létezik és nem hozható létre !" + +msgid "The file %s does not exists and cannot be created !" +msgstr "A %s file nem létezik és nem hozható létre !" + +msgid "There are some issues with folders rights. Please corret them as soon as possible as they could induce bugs and instabilities." +msgstr "A mappa hozzáférési jogokkal van gond. Légyszíves javitsd ki minél hamarabb, mert problémákat okozhat." + +msgid "Please see below:" +msgstr "Lásd alább:" + +msgid "Error: the submitted value is not an integer and thus, the parameter has not been updated!" +msgstr "Hiba: a beírt érték nem egy egész szám, így a paramétert nem tároltuk!" + +msgid "Error: the submitted string does not match the constrains" +msgstr "Hiba: a beírt szöveg nem felel meg a követelményeknek" + +msgid "Error: the submitted file can not be uploaded!" +msgstr "Hiba: a file nem feltölthető!" + +msgid "Error: security issue!" +msgstr "Hiba: biztonsági probléma!" + +msgid "Parameters" +msgstr "Paraméterek" + +msgid "Here are the parameters of the plugin. Modify them at will to fit your needs." +msgstr "Ezek a plugin paraméterei. Szabadon megváltoztathatók." + +msgid "Here are the parameters of the framework. Modify them at will to fit your needs." +msgstr "Ezek a "framework" paraméterei. Szabadon megváltoztathatók." + +msgid "Values" +msgstr "Értékek" + +msgid "Warning: some characters have been removed because they are not allowed here" +msgstr "Figyelem: néhány karaktert eltávolítottunk, mert itt nem megengedettek" + +msgid "(integer)" +msgstr "(egész szám)" + +msgid "(If you want to delete this file, please check this box %s)" +msgstr "(Ha ki akarod törölni ezt a file-t akkor jelöld be ezt a négyzetet %s)" + +msgid "Update" +msgstr "Mentés" + +msgid "Reset to default values" +msgstr "Visszaállítás az alapértelmezett értékekre" + +msgid "Some parameters have not been updated due to errors (see below)!" +msgstr "Az alábbi hiba miatt néhány paramétert nem tudtunk elmenteni" + +msgid "Parameters have been updated (but with some warnings)!" +msgstr "A paraméterek mentése sikerült. Olvasd el a figyelmeztetéseket!" + +msgid "Parameters have been updated successfully!" +msgstr "A paraméterek mentése sikerült!" + +msgid "Parameters have been reset to their default values!" +msgstr "A paramétereket visszaállítottuk az alapértelmezett értékekre" + diff --git a/core/lang/SL_framework-id_ID.mo b/core/lang/SL_framework-id_ID.mo new file mode 100644 index 0000000000000000000000000000000000000000..7f7c7f911e77e145dac18aaacd48d889ff9e015e GIT binary patch literal 97 zcmca7#4?ou2$+Ca28eY)93Zd(Vh$wQ706}>Vm~0}0^%?rc1+4IEz#4{V+c+yDap)B aFJ=fy%_~XFOJ@j3%}Y-#DJ@FOV*mi`IS>*6 literal 0 HcmV?d00001 diff --git a/core/lang/SL_framework-id_ID.po b/core/lang/SL_framework-id_ID.po new file mode 100644 index 0000000..51332f4 --- /dev/null +++ b/core/lang/SL_framework-id_ID.po @@ -0,0 +1,28 @@ +msgid "" +msgstr "" +"Generated: SL Framework (http://www.sedlex.fr)\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2014-01-01T18:58:13+00:00\n" +"Last-Translator: admin \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Poedit-Language: Indonesian\n" +"X-Poedit-Country: Indonesia\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-KeywordsList: __;\n" +"X-Poedit-Basepath: \n" +"X-Poedit-Bookmarks: \n" +"X-Poedit-SearchPath-0: .\n" +"X-Textdomain-Support: yes\n" + +msgid "About..." +msgstr "Tentang" + +msgid "Settings" +msgstr "Pengaturan" + diff --git a/core/lang/SL_framework-in_ID.mo b/core/lang/SL_framework-in_ID.mo new file mode 100644 index 0000000000000000000000000000000000000000..57f8086e4fc12c67e233b6d1ad4169396d673049 GIT binary patch literal 4398 zcmaKuON<;x8Gs8&2oNVga4-mDY6JFySVrU_L1q=AT|eUW?mBCG?FcTUX1aE!GW{6$ zBa?~XfP@bqgt!DDA%p~+2#*^GI0OlV!i58oI3W%k5GW!jN3f9i{;KMpu{YQn&o@=w zRsZ|{_b>O|@q*&t|R!SYYL#ekd@qX4@tdBzr$M7-u2lzBRa;H*v!z^+R zS6N?&?}k5y_raIo2jCx}y#E^fF#Hb`(Z}B!xDxph_zw10As_V+UvGzx#`P(9KkM^Q z?t2=(52jGgU56s?8&K@~QRMHT*!MRm=l&IW18%au>#iX0Jk+c&Leam3BJVnU3;Z?| z{l6QZ{|3r^e}ebIze17wI=lq$MX2a!py>5H{1E&md<6asioafkefVD}?|&Mj-wQ9o zN8uPAf!~8-=TG51@R#sC@MZWZ_-82k9Ob3=Lk*9?K0E_2L9y#w@F;u{qN@5e@@rmd=CB&%KeX{45HLFJPEHrvEvI+?)^Fxy}l3msGsvCe)}zyxc@!! z)yUVN-1j;pHPnr`eiKHDyt|?J?-&$4ABMc5J`>m5Q2cfkiu@w3zYGbn`VN%)e*oqD zPoUJmFXHomL-Dr+QS?3rW&Lp|=QpAFa|`mS8bZK9C@B#QBJOd>TGx$mPRVeTO3QE4c0wq8G0r{xo?+W(zpvYf`eAE_SJ@`2&`g{e7 z{VzoR5U#U+2}*o!Kn?Fcmyk)XZ(7UGCo$+1ezT%Uy*`f8W&PHbwC!%S<`fQ!}#qpeUDh(20H4 zrp0v1O*2=I{jrcHu_WVhXX zquW=PuV3w}J?{;jBT${T)v$El8)|=SON3S0=*t&(bYgITsagxz4?@&cTUL0luTNBZ zFy~wC-~#bAf}$d7&xk=aueL#0Sh$1dLIf(cYjW|@Qq&H=zrCq;H`NoHOP8vvCT(n` zKI-z?j%@icb!CdemZV`LA97>SU24_-A}Q2UV^fQjk}QcGG$Wl#Nc!rtMT6(jI{vho zaj7O6Bwwj#c2K#RXQxVwAb)&W>jRgf&+Z#0q7DytOg?I`R&C{EMdov+Q>`c~B7k0< zY6qrCYn{eJty_YFdwQ$ZLzCx)&rYBJ&L+L6fVd&?F2G3B)MKo;sTO!4m=HZc9jT2Z zA@sSOb&ey-vU{7`7C}8#2m@?_SdnzqxKGR~_Oxuh|xSOU!g-D3`wGy6CdbjRBd|RoZ+210v zQ)On#9Q%myBmNe*DA#qhOHn%M1Uj@XNocjt7j>%kY(6q|L$^^IQ!_DRy@63ABI8H% z=Eyzo@`=g2>Bao1n+cCX1y4-nG)?mvs)m$lbHA^iaT7z&C;5&oPe6CN>-J%ik=P z=F;)cc9ZLhx1}=DUvsw>Y_DyK8@%ly^OwgJT4$!h0VftC?ElI-d95kx^-dhJ!%kma zK;w2gG0`SWw8{~bGBHz>=_Z+swVUih%`ndVFncn!W2q89&d5b4=EY7GW)F?OTr&7c z2}o%t;xM&~N0{uXS&oIjrBhiQo@DBROO0EaV|(J`u_+s_oS4)xCZf&+GiC+>5bI)= zs2!PKVU|T-NY?e$89%@nlVvm6^1pD!E$@jGMSa4>nP!GVRd9v1EA^ z&ZZ-qNSUz~tt*2XVQz)Y=`H7L2!>mvdQY8p4d>LhD_y21-K+|S351M?Ar??w!9cZd z#6L@lBe-nh_MwXw^J!b=(IpY=O*?E8()Q*qbM;Azc3nRqmX> z0C{gS3JRL;NS$vo$;HL=xt-r)|Hq%Xjy~LP>Sh{;&e\n" +"Last-Translator: PradiktaDwiAnthony \n" +"Last-Translator: Prihantoosa \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Poedit-Language: Indonesian\n" +"X-Poedit-Country: Indonesia\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-KeywordsList: __;\n" +"X-Poedit-Basepath: \n" +"X-Poedit-Bookmarks: \n" +"X-Poedit-SearchPath-0: .\n" +"X-Textdomain-Support: yes\n" + +msgid "About..." +msgstr "Tentang" + +msgid "Settings" +msgstr "Pengaturan" + +msgid "Log options" +msgstr "Opsi rekaman" + +msgid "What is the debug level:" +msgstr "Level debug:" + +msgid "See the debug logs" +msgstr "Lihat catatan debug" + +msgid "1=log only the critical errors;" +msgstr "Hanya rekam data error yang kritis" + +msgid "2=log only the critical errors and the standard errors;" +msgstr "Hanya rekam data error yang standar dan kritis" + +msgid "3=log only the critical errors, the standard errors and the warnings;" +msgstr "Hanya rekam data error yang kritis, standar, dan peringatan" + +msgid "4=log information;" +msgstr "Informasi rekaman" + +msgid "Multisite Management" +msgstr "Pengaturan "multisite"" + +msgid "Do you want to allow sub-blogs to modify the translations of the plugins:" +msgstr "Apakah Anda ingin mengizinkan sub-blog untuk memodifikasi terjemahan plugins:" + +msgid "If this option is unchecked, the translation tab won't be displayed in the blog administration panel." +msgstr "jika opsi ini tidak dipilih, tab terjemahan tidak akan ditampilkan pada panel administrasi blog" + +msgid "Summary page for the plugins developped with the SL framework" +msgstr "Ringkasan halaman untuk plugin yang dikembangkan dengan SL Framework" + +msgid "For now, you have installed %d plugins including %d plugins developped with the 'SL framework':" +msgstr "Untuk saat ini, Anda telah menginstall %d plugins termasuk %d plugins yang dikembangkan dengan "Framework SL":" + +msgid "Plugin name" +msgstr "Nama plugin" + +msgid "Description" +msgstr "Deskripsi" + +msgid "There is a SQL database for this plugin" +msgstr "Terdapat database SQL untuk plugin ini" + +msgid "Version: %s by %s" +msgstr "Versi: %s Oleh %s" + +msgid "List of SL plugins" +msgstr "List dari SL Plugins" + +msgid "Parameters of the framework" +msgstr "Paramater Framework" + +msgid "Manage translation of the framework" +msgstr "Mengelola terjemahan dari Framework" + +msgid "KB" +msgstr "KB" + +msgid "MB" +msgstr "MB" + +msgid "GB" +msgstr "GB" + +msgid "Parameters" +msgstr "Parameter" + +msgid "Values" +msgstr "Nilai" + +msgid "(integer)" +msgstr "(integer)" + +msgid "Update" +msgstr "Pembaharuan" + +msgid "Sentence to translate" +msgstr "kalimat untuk diterjemahkan" + +msgid "Translation" +msgstr "Terjemahan" + +msgid "Your name:" +msgstr "Nama Anda:" + +msgid "Your email or your website:" +msgstr "Email atau website anda:" + +msgid "Create the translation files" +msgstr "Buat file terjemahan" + +msgid "Modify the translation files" +msgstr "Perbaiki file terjemahan" + +msgid "Language" +msgstr "Bahasa" + +msgid "Information" +msgstr "Informasi" + +msgid "Translators" +msgstr "Penerjemah" + +msgid "This is the default language of the plugin. It cannot be modified." +msgstr "Ini adalah bahasa default plugin. ini tidak dapat dimodifikasi." + +msgid "Modify" +msgstr "Diubah" + +msgid "Send to the author of the plugin" +msgstr "Kirim ke author plugin" + +msgid "Add a new translation" +msgstr "Tambah terjemahan baru" + +msgid "Add" +msgstr "Tambah" + +msgid "Send to the author of the framework" +msgstr "Kirim ke author framework" + +msgid "Contact the author" +msgstr "Kontak author" + +msgid "Your email:" +msgstr "Email anda:" + +msgid "Your comments:" +msgstr "Komentar anda:" + +msgid "Plugins that you may install" +msgstr "Plugin yang dapat anda install" + +msgid "The following plugins have been developed by the author and are not yet installed:" +msgstr "Plugin berikut telah dikembangkan oleh author dan belum diinstal:" + +msgid "Plugin not yet installed" +msgstr "Plugin belum terinstall" + +msgid "Description and Screenshots" +msgstr "Deskripsi & Gambar Layar" + +msgid "All author's plugins have been installed. Thank you!" +msgstr "Semua plugin author telah dipasang. Terima kasih!" + +msgid "Installed plugins" +msgstr "Plugins terinstall" + +msgid "You have already installed the following author's plugins:" +msgstr "Anda telah menginstal plugin author berikut ini:" + +msgid "Plugin already installed" +msgstr "Plugin sudah terinstall" + +msgid "The Wordpress page: %s" +msgstr "Halaman Wordpress: %s" + +msgid "An Unexpected HTTP Error occurred during the API request." +msgstr "Kesalahan pada HTTP terjadi pada saat permintaan API" + +msgid "Last update:" +msgstr "Update terakhir" + +msgid "Rating: %s" +msgstr "Rangking: %s" + +msgid "by %s persons" +msgstr "oleh %s orang" + +msgid "Number of download:" +msgstr "Jumlah download:" + +msgid "Close popup" +msgstr "Tutup popup" + +msgid "The folder %s is not %s !" +msgstr "Folder %s bukan %s !" + +msgid "The file %s is not %s !" +msgstr "Berkas %s bukan %s !" + diff --git a/core/lang/SL_framework-it_IT.mo b/core/lang/SL_framework-it_IT.mo new file mode 100644 index 0000000000000000000000000000000000000000..57881285ecf5a8a96d39b6271680fd7555507f3b GIT binary patch literal 16784 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 V9UJae{Z1AEYK0s^KdH*x{{dZSP$U2V literal 0 HcmV?d00001 diff --git a/core/lang/SL_framework-it_IT.po b/core/lang/SL_framework-it_IT.po new file mode 100644 index 0000000..90b7c35 --- /dev/null +++ b/core/lang/SL_framework-it_IT.po @@ -0,0 +1,439 @@ +msgid "" +msgstr "" +"Generated: SL Framework (http://www.sedlex.fr)\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2013-06-28T21:16:10+00:00\n" +"Last-Translator: Lamberto75 \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Poedit-Language: Italian\n" +"X-Poedit-Country: Italy\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-KeywordsList: __;\n" +"X-Poedit-Basepath: \n" +"X-Poedit-Bookmarks: \n" +"X-Poedit-SearchPath-0: .\n" +"X-Textdomain-Support: yes\n" + +msgid "About..." +msgstr "Info..." + +msgid "Settings" +msgstr "Impostazioni" + +msgid "Log options" +msgstr "Opzioni file log" + +msgid "What is the debug level:" +msgstr "Qual è il livello di debug:" + +msgid "See the debug logs" +msgstr "Visualizza i registri di debug" + +msgid "1=log only the critical errors;" +msgstr "1 = registra solo gli errori critici;" + +msgid "2=log only the critical errors and the standard errors;" +msgstr "2 = registra solo gli errori critici e gli errori standard;" + +msgid "3=log only the critical errors, the standard errors and the warnings;" +msgstr "3 = registra solo gli errori critici, gli errori standard e gli avvisi;" + +msgid "4=log information;" +msgstr "4 = registra informazioni;" + +msgid "5=log verbose;" +msgstr "5 = registra ridondanze;" + +msgid "Multisite Management" +msgstr "Gestione multisito" + +msgid "Do you want to allow sub-blogs to modify the translations of the plugins:" +msgstr "Consentire sub-blog per modificare le traduzioni dei plugin:" + +msgid "If this option is unchecked, the translation tab won't be displayed in the blog administration panel." +msgstr "Se questa opzione non è selezionata, la scheda traduzione non verrà visualizzata nel pannello di amministrazione del blog." + +msgid "Summary page for the plugins developped with the SL framework" +msgstr "Pagina di riepilogo plugin sviluppati con il framework SL" + +msgid "For now, you have installed %s plugins including %s plugins developped with the SedLex's framework" +msgstr "Per ora, è installato %s plugin che include plugin %s sviluppato/i con il framework del SedLex" + +msgid "The core plugin is located at %s" +msgstr "Il plugin si trova in %s" + +msgid "Plugin name" +msgstr "Nome plugin" + +msgid "Description" +msgstr "Descrizione" + +msgid "There is a SQL database for this plugin" +msgstr "Esiste un database SQL per questo plugin" + +msgid "Version: %s by %s" +msgstr "Versione: %s da %s" + +msgid "List of SL plugins" +msgstr "Lista dei plugin SL" + +msgid "Parameters of the framework" +msgstr "Parametri del framework" + +msgid "Manage translation of the framework" +msgstr "Gestisci traduzione del framework" + +msgid "The folder %s is not %s !" +msgstr "La cartella %s non è %s" + +msgid "The file %s is not %s !" +msgstr "Il file %s non è %s" + +msgid "The folder %s does not exists and cannot be created !" +msgstr "La cartella non esiste %s e non può essere creata!" + +msgid "The file %s does not exists and cannot be created !" +msgstr "Il file non esiste %s e non può essere creato!" + +msgid "There are some issues with folders rights. Please corret them as soon as possible as they could induce bugs and instabilities." +msgstr "Ci sono alcuni problemi con i diritti delle cartelle. Si prega di correggerli al più presto possibile in quanto potrebbero produrre bug e instabilità." + +msgid "Please see below:" +msgstr "Si prega di vedere sotto:" + +msgid "Close popup" +msgstr "Chiudi popup" + +msgid "Here, you may configure three levels of translations: at the plugin level, at the framework level, and at the dashboard level." +msgstr "Qui, è possibile configurare tre livelli di traduzione: 1) livello di plugin, 2) livello di quadro, e 3) livello del pannello di controllo." + +msgid "Please be informed that your current language is %s. Text will be translated if a translation is available." +msgstr "Si informa che la lingua corrente è %s. Il testo sarà tradotto se una traduzione è disponibile." + +msgid "If you want to modify the language, please go in %s and find %s or %s. The second argument is your language and you may modify it as you want." +msgstr "Se si desidera modificare la lingua, si prega di andare in %s e trovare %s o %s. Il secondo argomento è la tua lingua e si può modificare come si vuole." + +msgid "Translations available for this plugin (i.e. %s)" +msgstr "Traduzioni disponibili per questo plugin (cioè %s)" + +msgid "Translations available for the SL framework (stored in %s)" +msgstr "Traduzioni disponibili per il quadro SL (memorizzati in %s)" + +msgid "Adding a new translation for this language: %s" +msgstr "Aggiunta di una nuova traduzione per questa lingua: %s" + +msgid "Sentence to translate" +msgstr "Frasi da tradurre" + +msgid "Translation" +msgstr "Traduzione" + +msgid "Your name:" +msgstr "Il tuo nome:" + +msgid "(if your name/pseudo is already in the list, there is no need to fill this input)" +msgstr "(se il tuo nome / pseudo è già presente nella lista, non c'è bisogno di riempire questo campo)" + +msgid "Your email or your website:" +msgstr "La tua email o il tuo sito" + +msgid "Create the translation files" +msgstr "Crea i file di traduzione" + +msgid "Add a new translation" +msgstr "Aggiungi una nuova traduzione" + +msgid "Modifying the translation for this language: %s" +msgstr "Modifica la traduzione per questa lingua: %s" + +msgid "The number of occurrence of %s does not match in both string. Please note that the string %s will be replaced with a contextual string." +msgstr "Il numero di occorrenze di %s non corrisponde in entrambe stringa. Si prega di notare che la stringa %s verrà sostituita con una stringa contestuale." + +msgid "Modify the translation files" +msgstr "Modifica i file di traduzione" + +msgid "Modify translations" +msgstr "Modifica traduzioni" + +msgid "%s sentences have been translated (i.e. %s)." +msgstr "%s frasi sono state tradotte (cioè %s)." + +msgid "%s sentences have been translated (i.e. %s) %s %s sentences have to be checked because they are close (but not identical) to those to translate.%s" +msgstr "%s frasi sono state tradotte (cioè %s) %s %s frasi devono essere controllate, perché sono simili (ma non identiche) a quelle da tradurre. %s" + +msgid "The translation %s have been sent" +msgstr "La traduzione %s è stata inviata" + +msgid "An error occured sending the email." +msgstr "Errore durante l'invio della email." + +msgid "Make sure that your wordpress is able to send email." +msgstr "Assicuratevi che wordpress sia in grado di inviare e-mail." + +msgid "Send translation" +msgstr "Invia traduzione" + +msgid "%s file cannot be created for %s as there is no translated sentence. Please, translate at least one sentence to create a file" +msgstr "file %s non può essere creato per %s in quanto non vi è alcuna frase tradotta. Per favore, tradurre almeno una frase per creare il file" + +msgid "%s file has been updated for %s" +msgstr "File %s è stato aggiornato per %s" + +msgid "%s file has been updated from this file" +msgstr "File %s è stato aggiornato pda questo file" + +msgid "%s file has been created with a new translation for %s" +msgstr "File %s è stato creato con una nuova traduzione per %s" + +msgid "%s file has been created from this file" +msgstr "File %s è stato creato da questo file" + +msgid "If you do not want to loose your translations on the next upgrading of this plugin, it is recommended to send the translation files to the author by clicking %s here %s !" +msgstr "Se non si vuole perdere le traduzioni al prossimo aggiornamento di questo plugin, si raccomanda di inviare i file di traduzione all'autore cliccando %s qui %s!" + +msgid "If you do not want to loose your translations on the next upgrading of this plugin, please save them on your hard disk before upgrading and then restore them after the upgrade !" +msgstr "Se non si vuole perdere le traduzioni al prossimo aggiornamento di questo plugin, si prega di salvarle sul disco rigido prima di aggiornare e poi ripristinarle dopo l'aggiornamento!" + +msgid "Confirmation" +msgstr "Conferma" + +msgid "Summary cached %s" +msgstr "Cache riepilogo %s" + +msgid "The sentences used in this plugin are in English. Help the others users using the same language as you by translating this plugin." +msgstr "Le frasi utilizzate in questo plugin sono in inglese. Aiuta gli altri utenti che utilizzano la tua stessa lingua traducendo questo plugin." + +msgid "This plugin is available in %s languages." +msgstr "Questo plugin è disponibile in %s lingue." + +msgid "There are %s sentences to be translated in this plugin." +msgstr "Ci sono %s frasi da tradurre in questo plugin." + +msgid "Language" +msgstr "Lingue" + +msgid "Ratio %" +msgstr "Percentuale %" + +msgid "Translators" +msgstr "Traduttori" + +msgid "This is the default language of the plugin. It cannot be modified." +msgstr "Questa è la lingua di default del plugin. Non può essere modificata." + +msgid "Modify" +msgstr "Modifica" + +msgid "Send to the author of the plugin" +msgstr "Invia all'autore del plugin" + +msgid "You may add a new translation hereafter (Please note that it is recommended to send your translation to the author so that he would be able to add your translation to the future release of the plugin !)" +msgstr "È pssibile aggiungere una nuova traduzione qui di seguito (Si prega di notare che si consiglia di inviare la tua traduzione all'autore in modo che possa aggiungerla alla futura versione del plugin!)" + +msgid "Add" +msgstr "Aggiungi" + +msgid "The 'SL framework' is a framework used for developping many plugins like this one. Thus, if you participate translating the framework, it will be very helpful for a bunch of plugins." +msgstr "Il 'SL quadro' è un framework utilizzato per sviluppo di molti plugin. Quindi, se si partecipa alla traduzione del framework, sarà utile per molti plugin." + +msgid "There is %s languages supported for the 'SL framework'." +msgstr "Ci sono %s lingue supportate per il 'SL Framework'." + +msgid "There is %s sentence to be translated in the framework." +msgstr "Ci sono %s frasi da tradurre nel framework." + +msgid "Send to the author of the framework" +msgstr "Invia all'autore del framework" + +msgid "Add new" +msgstr "Aggiungi nuovo" + +msgid "Error: the submitted value is not an integer and thus, the parameter has not been updated!" +msgstr "Errore: il valore inserito non è un numero intero e, quindi, il parametro non è stato aggiornato!" + +msgid "Error: the submitted string does not match the constrains" +msgstr "Errore: la stringa presentata non corrisponde ai vincoli" + +msgid "Error: the submitted file can not be uploaded!" +msgstr "Errore: il file inviato non può essere caricato!" + +msgid "Error: security issue!" +msgstr "Errore: problema di sicurezza!" + +msgid "Parameters" +msgstr "Parametri" + +msgid "Here are the parameters of the plugin. Modify them at will to fit your needs." +msgstr "Qui ci sono i parametri del plugin. Modificarli a piacimento secondo le proprie esigenze." + +msgid "Here are the parameters of the framework. Modify them at will to fit your needs." +msgstr "Ecco i parametri del framework. Modificarli a piacimento secondo le proprie esigenze." + +msgid "(Delete)" +msgstr "(Elimina)" + +msgid "Values" +msgstr "Valori" + +msgid "Warning: some characters have been removed because they are not allowed here" +msgstr "Attenzione: alcuni caratteri sono stati rimossi perché non possono essere utilizzati" + +msgid "(integer)" +msgstr "(intero)" + +msgid "(If you want to delete this file, please check this box %s)" +msgstr "(Se si desidera eliminare il file, si prega di controllare la casella %s)" + +msgid "Update" +msgstr "Aggiorna" + +msgid "Reset to default values" +msgstr "Ripristina valori predefiniti" + +msgid "Some parameters have not been updated due to errors (see below)!" +msgstr "Alcuni parametri non sono stati aggiornati a causa di errori (vedi sotto)!" + +msgid "Parameters have been updated (but with some warnings)!" +msgstr "I parametri sono stati aggiornati (ma ci sono degli avvisi)!" + +msgid "Parameters have been updated successfully!" +msgstr "I parametri sono stati aggiornati con successo!" + +msgid "Parameters have been reset to their default values!" +msgstr "I parametri sono stati ripristinati ai valori di default!" + +msgid "Plugins that you may install" +msgstr "Plugin che è possibile installare" + +msgid "The following plugins have been developed by the author and are not yet installed:" +msgstr "I seguenti plugin sono stati sviluppati dall'autore e non sono ancora stati installati:" + +msgid "Plugin not yet installed" +msgstr "Plugin non ancora installato" + +msgid "Description and Screenshots" +msgstr "Descrizione e Schermate" + +msgid "All author's plugins have been installed. Thank you!" +msgstr "Sono stati installati tutti i plugin dell'autore. Grazie!" + +msgid "Installed plugins" +msgstr "Plugins installati" + +msgid "You have already installed the following author's plugins:" +msgstr "Hai già installato i plugin del seguente autore:" + +msgid "Plugin already installed" +msgstr "Plugin già installato" + +msgid "The Wordpress page: %s" +msgstr "La pagina Wordpress: %s" + +msgid "An Unexpected HTTP Error occurred during the API request." +msgstr "Si è verificato un errore HTTP inaspettato durante la richiesta API." + +msgid "Last update:" +msgstr "Ultimo aggiornamento:" + +msgid "Rating: %s" +msgstr "Valutazione: %s" + +msgid "by %s persons" +msgstr "da %s perone" + +msgid "Number of download:" +msgstr "Numero di download" + +msgid "Filter: %s" +msgstr "Filtro: %s" + +msgid "%s of %s" +msgstr "%s di %s" + +msgid "Current Page" +msgstr "Pagina Corrente" + +msgid "Donate" +msgstr "Donazioni" + +msgid "If you like the plugin, do not hesitate to donate. Please note that this plugin is developed in my spare time for free." +msgstr "Se ti piace il plugin, non esitate a fare una donazione. Si prega di notare che questo plugin è sviluppato nel mio tempo libero gratuitamente." + +msgid "This is not mandatory! but it may be a sign that this plugin fits you needs: it makes me happy..." +msgstr "Questo non è obbligatorio! ma può essere un segno che questo plugin si adatta ai bisogni dell'utente: mi rende felice..." + +msgid "Feedback form" +msgstr "Modulo di feedback" + +msgid "This form is an easy way to contact the author and to discuss issues/incompatibilities/etc. with him" +msgstr "Questo modulo è un modo semplice per contattare l'autore e per discutere di problemi / incompatibilità / ecc. con lui" + +msgid "Contact the author" +msgstr "Contatta l'autore" + +msgid "Your email:" +msgstr "Email:" + +msgid "Useful... so that the author will be able to anwser you." +msgstr "Utile ... in modo che l'autore sarà in grado di rispondere." + +msgid "Your comments:" +msgstr "Commenti:" + +msgid "Please note that additional information on your wordpress installation will be sent to the author in order to help the debugging if needed (such as : the wordpress version, the installed plugins, etc.)" +msgstr "Si prega di notare che ulteriori informazioni sulla installazione di WordPress in uso saranno inviate all'autore al fine di aiutare il debug, se necessario (ad esempio: la versione di wordpress, i plugin installati, ecc)" + +msgid "Send feedback" +msgstr "Invia feedback" + +msgid "No email have been provided for the author of this plugin. Therefore, the feedback is impossible" +msgstr "Nessuna e-mail è stata fornita per l'autore di questo plugin. Pertanto, il feedback è impossibile" + +msgid "The feedback has been sent" +msgstr "Il feedback è stato inviato" + +msgid "KB" +msgstr "KB" + +msgid "MB" +msgstr "MB" + +msgid "GB" +msgstr "GB" + +msgid "Error: %s function is not found" +msgstr "Errore: funzione %s non è stata trovata" + +msgid "The file %s cannot be read. You should have a problem with file permissions or security restrictions." +msgstr "Il file %s non può essere letto. Ci potrebbe essere un problema con i permessi dei file o le restrizioni di sicurezza." + +msgid "The folder %s cannot be opened. You should have a problem with folder permissions or security restrictions." +msgstr "La cartella %s non può essere aperta. Ci potrebbe essere un problema con le autorizzazioni delle cartelle o restrizioni di sicurezza." + +msgid "The file %s cannot be deleted. You should have a problem with file permissions or security restrictions." +msgstr "Il file %s non può essere eliminato. Ci potrebbe essere un problema con i permessi dei file o le restrizioni di sicurezza." + +msgid "An other process is still running (it runs for %s seconds)" +msgstr "Un altro processo è ancora in esecuzione (è in esecuzioni per %s secondi)" + +msgid "The file %s cannot be modified/created. You should have a problem with file permissions or security restrictions." +msgstr "Il file %s non può essere modificato / creato. Ci potrebbe essere un problema con i permessi dei file o le restrizioni di sicurezza." + +msgid "The file %s cannot be created. You should have a problem with file permissions or security restrictions." +msgstr "Il file %s non può essere creato. Ci potrebbe essere un problema con i permessi dei file o le restrizioni di sicurezza." + +msgid "The file %s cannot be compressed." +msgstr "Il file %s non può essere compresso." + +msgid "The file %s cannot be renamed. You should have a problem with file permissions or security restrictions." +msgstr "Il file %s non può essere creato. Ci potrebbe essere un problema con i permessi dei file o le restrizioni di sicurezza." + +msgid "The file %s cannot be modified. You should have a problem with file permissions or security restrictions." +msgstr "Il file %s non può essere modificato. Ci potrebbe essere un problema con i permessi dei file o le restrizioni di sicurezza." + diff --git a/core/lang/SL_framework-ja_JP.mo b/core/lang/SL_framework-ja_JP.mo new file mode 100644 index 0000000000000000000000000000000000000000..02a03b3553373d559c388fc6f86d87de141d646d GIT binary patch literal 974 zcmb7=%}Z557{;d$qc$x9cP_>jkvpL%TD55@wzv@lZKgZpy$7yy4)>gMrJZvI62*`f zYULM#)#;iVR7e-mW&eO{H!nx83-Mp*88teQUakW#zZsb4ect!kxp8@t;ao#?p`?4@ zd_i43;eGH2>MrU4bq{s(0%Lc;XJ8Nb8oULrpKu3s`i_f?T>-Cy55P|FA@~@41Wtej za2s^}ZeKe7_Z;lSdkS>=UtmE+k*7-`ds0?h$ePeaCAl9&p07hLH12T}#1S9zDi!`h zap{FYMZCl(?GN$pwsmDsN~LomscNd?2Z5@FT>8a$Q0Yh<+qUv*L-wCl;b}kjbfl^S zqNrMKa{A9x8wR2(1{Ioyyew)8*k#$V^f)PG*zLyTc9BmU4e?{*QS1$YboUK9?Ao zRkEX$tdRXccG20}S7bMG)0{EH`I@ZlO>AbfDGi%egCT56mfR4@mK(xiZ$yG=ex4b| qznZ*YtqnJ~{u{ENk9LR87JPPRzVA+b&4oTqX2Ip&OoyBGdG;Il`?CcA literal 0 HcmV?d00001 diff --git a/core/lang/SL_framework-ja_JP.po b/core/lang/SL_framework-ja_JP.po new file mode 100644 index 0000000..54b14ab --- /dev/null +++ b/core/lang/SL_framework-ja_JP.po @@ -0,0 +1,541 @@ +msgid "" +msgstr "" +"Generated: SL Framework (http://www.sedlex.fr)\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2011-10-27T08:32:55+00:00\n" +"Last-Translator: hasegawa \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Poedit-Language: Japanese\n" +"X-Poedit-Country: Japan\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-KeywordsList: __;\n" +"X-Poedit-Basepath: \n" +"X-Poedit-Bookmarks: \n" +"X-Poedit-SearchPath-0: .\n" +"X-Textdomain-Support: yes\n" + +msgid "About..." +msgstr "" + +msgid "Settings" +msgstr "設定" + +msgid "The advanced options and output will be displayed now !" +msgstr "高度なオプションと出力が表示されます!" + +msgid "The advanced options and output will be hidden now !" +msgstr "高度なオプションと出力が非表示になります!" + +msgid "The developpers documentations will be displayed now !" +msgstr "developpersのドキュメンテーションが表示されます!" + +msgid "The developpers documentations will be hidden now !" +msgstr "developpersのドキュメンテーションは現在、非表示になります!" + +msgid "The SVN interface will be displayed now !" +msgstr "SVNインターフェースが表示されます!" + +msgid "The SVN interface will be hidden now !" +msgstr "SVNインタフェースは、非表示になります!" + +msgid "The SVN parameters have been updated !" +msgstr "SVNのパラメータが更新されました!" + +msgid "%s has been updated with %s !" +msgstr "" + +msgid "Please click %shere%s to refresh the page and ensure everything is ok!" +msgstr "" + +msgid "Summary page for the plugins developped with the SL framework" +msgstr "" + +msgid "The core file used for the SedLex plugins is:" +msgstr "" + +msgid "For now, you have installed %d plugins including %d plugins developped with the 'SL framework':" +msgstr "" + +msgid "Plugin name" +msgstr "" + +msgid "Description" +msgstr "" + +msgid "Status of the core" +msgstr "" + +msgid "An Unexpected HTTP Error occurred during the API request." +msgstr "" + +msgid "This plugin does not seem to be hosted on the wordpress repository." +msgstr "" + +msgid "This plugin is hosted by wordpress repository and is not up-to-date ! (i.e. %s)" +msgstr "" + +msgid "(the repository)" +msgstr "" + +msgid "This plugin is hosted by wordpress repository with the same version but the plugin is not exactly the same" +msgstr "" + +msgid "This plugin is hosted by wordpress repository and is up-to-date !" +msgstr "" + +msgid "Last update:" +msgstr "" + +msgid "by %s persons" +msgstr "" + +msgid "Rating:" +msgstr "" + +msgid "Number of download:" +msgstr "" + +msgid "Version: %s by %s" +msgstr "" + +msgid "Update with the core of the %s plugin (only if you definitely know what you do)" +msgstr "" + +msgid "This core is currently used by the framework and plugins !" +msgstr "" + +msgid "SVN management" +msgstr "" + +msgid "An error occurs when requesting %s" +msgstr "" + +msgid "You do not seem to have a repository for Wordpress because %s returns a 404 error. Thus, ask for one here: %s" +msgstr "" + +msgid "Overwrite the local plugin files with files stored the SVN repository" +msgstr "" + +msgid "Quick" +msgstr "" + +msgid "Slow" +msgstr "" + +msgid "Update the SVN repository with your current local plugin files" +msgstr "" + +msgid "The slow version may be useful if you have issues with the quick version." +msgstr "" + +msgid "Show the advanced options and parameters:" +msgstr "" + +msgid "Show/Hide" +msgstr "" + +msgid "Show the developpers documentation:" +msgstr "" + +msgid "Enable SVN to commit your developed plugin to wordpress.org:" +msgstr "" + +msgid "Enable/Disable" +msgstr "" + +msgid "Your SVN Login:" +msgstr "" + +msgid "Your SVN password:" +msgstr "" + +msgid "The author name displayed in the Wordpress plugin (probably close to your login):" +msgstr "" + +msgid "Update" +msgstr "" + +msgid "List of SL plugins" +msgstr "" + +msgid "The following description is a quick tutorial on about how to create a plugin with the SL framework. (Please note that the following description is in English for developpers, sorry for this inconvenience)" +msgstr "" + +msgid "How to develop a plugin?" +msgstr "" + +msgid "Framework documentation" +msgstr "" + +msgid "Manage translation of the framework" +msgstr "" + +msgid "Please find hearafter all the possible classes and methods for the development with this framework" +msgstr "" + +msgid "[CLASS]" +msgstr "" + +msgid "Here is the method of the class:" +msgstr "" + +msgid "[METHOD]" +msgstr "" + +msgid "Description:" +msgstr "" + +msgid "Parameters:" +msgstr "" + +msgid "[optional]" +msgstr "" + +msgid "(by default, its value is:" +msgstr "" + +msgid "No param" +msgstr "" + +msgid "Return value:" +msgstr "" + +msgid "Typical call:" +msgstr "" + +msgid "See also:" +msgstr "" + +msgid "Version of" +msgstr "" + +msgid "MD5 fingerprint of the framework:" +msgstr "" + +msgid "Last update of the core: %s at %s" +msgstr "" + +msgid "The folder %s is not %s !" +msgstr "" + +msgid "The file %s is not %s !" +msgstr "" + +msgid "The folder %s does not exists and cannot be created !" +msgstr "" + +msgid "The file %s does not exists and cannot be created !" +msgstr "" + +msgid "There are some issues with folders rights. Please corret them as soon as possible as they could induce bugs and instabilities." +msgstr "" + +msgid "Please see below:" +msgstr "" + +msgid "Update the SVN repository %s with your current local plugin files (slower version)" +msgstr "" + +msgid "Update the SVN repository %s with your current local plugin files" +msgstr "" + +msgid "Overwrite the local plugin %s files with files stored the SVN repository" +msgstr "" + +msgid "Updating the local cache" +msgstr "" + +msgid "folder created" +msgstr "" + +msgid "folder creation has failed !" +msgstr "" + +msgid "%s bytes transfered" +msgstr "" + +msgid "An error occurred during the retrieval of files on the server ! Sorry ..." +msgstr "" + +msgid "To be sure that you compare the local plugin with the latest repoository files, it is necessary to download it locally. Please wait during the update (your are using the slow version which may be more reliable especially with big plugins)..." +msgstr "" + +msgid "Update of the files of the %s plugin in progress (%s files)" +msgstr "" + +msgid "An error occurred when listing the files of the %s plugin ! Sorry ..." +msgstr "" + +msgid "Browsing the modifications" +msgstr "" + +msgid "Comparing %s with %s" +msgstr "" + +msgid "Confirmation" +msgstr "" + +msgid "Commit comment:" +msgstr "" + +msgid "Yes, the SVN version will be deleted and be replaced by the local version" +msgstr "" + +msgid "Yes, the local version will be overwritten with the repository files" +msgstr "" + +msgid "Sending to the repository in progress..." +msgstr "" + +msgid "Preparation of the sending done !" +msgstr "" + +msgid "Sending the file is finished ! Now merging the change in the repository ..." +msgstr "" + +msgid "Error while preparing the sending!" +msgstr "" + +msgid "The commit has ended [ %s ]... You should received an email quickly !" +msgstr "" + +msgid "The commit has ended but there is an error!" +msgstr "" + +msgid "Sending to the local files in progress..." +msgstr "" + +msgid "The rollback has ended ..." +msgstr "" + +msgid "Your name:" +msgstr "" + +msgid "Your email (for response):" +msgstr "" + +msgid "Your comments:" +msgstr "" + +msgid "Please note that additional information on your wordpress installation will be sent to the author in order to help the debugging if needed (such as : the wordpress version, the installed plugins, etc.)" +msgstr "" + +msgid "Send feedback" +msgstr "" + +msgid "No email have been provided for the author of this plugin. Therefore, the feedback is impossible" +msgstr "" + +msgid "The feedback has been sent" +msgstr "" + +msgid "An error occured sending the email." +msgstr "" + +msgid "Make sure that your wordpress is able to send email." +msgstr "" + +msgid "Select all" +msgstr "" + +msgid "Un-select all" +msgstr "" + +msgid "KB" +msgstr "" + +msgid "MB" +msgstr "" + +msgid "GB" +msgstr "" + +msgid "The available translation for the SL framework (contained in the '%s' folder)" +msgstr "" + +msgid "There is %d languages supported for the 'SL framework'." +msgstr "" + +msgid "There is %d sentence to be translated in the framework." +msgstr "" + +msgid "The available translation for this plugin" +msgstr "" + +msgid "There is %d languages supported for this plugin." +msgstr "" + +msgid "There is %d sentence to be translated in this plugin." +msgstr "" + +msgid "Please note that the translation for the framework is available in the %s submenu (see the %s tab)." +msgstr "" + +msgid "Language" +msgstr "言語" + +msgid "Ratio %" +msgstr "" + +msgid "Translators" +msgstr "" + +msgid "Modify" +msgstr "" + +msgid "Send to the author of the framework" +msgstr "" + +msgid "Send to the author of the plugin" +msgstr "" + +msgid "Add a new translation" +msgstr "" + +msgid "You may add a new translation hereafter (Please note that it is recommended to send your translation to the author so that he would be able to add your translation to the future release of the plugin !)" +msgstr "" + +msgid "Add" +msgstr "" + +msgid "Adding a new translation for this language: %s" +msgstr "" + +msgid "Sentence to translate" +msgstr "" + +msgid "Translation" +msgstr "" + +msgid "(if your name/pseudo is already in the list, there is no need to fill this input)" +msgstr "" + +msgid "Your email or your website:" +msgstr "" + +msgid "Create the translation files" +msgstr "" + +msgid "Modifying the translation for this language: %s" +msgstr "" + +msgid "Modify the translation files" +msgstr "" + +msgid "%s sentences have been translated (i.e. %s)." +msgstr "" + +msgid "The translation %s have been sent" +msgstr "" + +msgid "%s file has been updated for %s" +msgstr "" + +msgid "%s file has been updated from this file" +msgstr "" + +msgid "%s file has been created with a new translation for %s" +msgstr "" + +msgid "%s file has been created from this file" +msgstr "" + +msgid "Error: the submitted value is not an integer and thus, the parameter has not been updated!" +msgstr "" + +msgid "Warning: some characters have been removed because they are not allowed here" +msgstr "" + +msgid "Error: the submitted string does not match the constrains" +msgstr "" + +msgid "Some parameters have not been updated due to errors (see below) !" +msgstr "" + +msgid "Parameters have been updated (but with some warnings) !" +msgstr "" + +msgid "Parameters have been updated successfully !" +msgstr "" + +msgid "Close popup" +msgstr "" + +msgid "Homepage:" +msgstr "" + +msgid "The file %s cannot be created. Therefore, no svn script can be created. Please make the folder writable or visit %s to install a SubVersion package on your server." +msgstr "" + +msgid "The folder %s does not exists and cannot be created. Therefore, no svn script can be created in that folder. Please create this folder (and make it writable) or visit %s to install a SubVersion package on your server." +msgstr "" + +msgid "The operating system of your server is %s. No installation of SVN has been found. Please visit %s to install a SubVersion package on your server." +msgstr "" + +msgid "The exec function is disabled on your installation. This function is mandatory to be able to use SVN." +msgstr "" + +msgid "SVN command:" +msgstr "" + +msgid "%s returns the following code: %s" +msgstr "" + +msgid "Checkout has failed! Please retry ..." +msgstr "" + +msgid "Indeed, it is known that the Checkout command have some difficulties to work. You may have to re-test several times (1-20 times) to finally succeed." +msgstr "" + +msgid "Do not panic: once the checkout have worked one time, the update command will be used and it is far more robust!" +msgstr "" + +msgid "NOTE: The command outputs the following information:" +msgstr "" + +msgid "The checkout have begun but have been interrupted without any reason!" +msgstr "" + +msgid "Update the local cache" +msgstr "" + +msgid "Compare the local cache with the plugins files" +msgstr "" + +msgid "Yes, the local version will be deleted and be replaced by the files stored on the SVN repository" +msgstr "" + +msgid "Retry the SVN preparation!" +msgstr "" + +msgid "Add a file: %s" +msgstr "" + +msgid "Delete a file: %s" +msgstr "" + +msgid "Final commit:" +msgstr "" + +msgid "The commit has ended and you may restart a normal life by closing the window..." +msgstr "" + +msgid "Thank you!" +msgstr "" + +msgid "The overwrite has ended and you may restart a normal life by closing the window..." +msgstr "" + +msgid "Your credentials do not seem to be correct. Please check them!" +msgstr "" + +msgid "This file have not been written in the repository due to server problem. Nevertheless, you should retry as it often works better with a second try !" +msgstr "" + diff --git a/core/lang/SL_framework-ko_KR.mo b/core/lang/SL_framework-ko_KR.mo new file mode 100644 index 0000000000000000000000000000000000000000..aa58e65bf89edff74ee63fed8e0dde2ba1a3fd4f GIT binary patch literal 3030 zcmb7^O>7%Q6vqeJ@>M9bAU*`5Lo3uv8YpcAN)!o1DJn{(q9C{+#M(PaR$cE}yX(5X zK+q64Y~r?da7EgrZ3-cAii6q%7cQtL#FYaVB+slka6<_3pV>{~gf@c6&d)PD z@6CJv_ul@pZDX0>?^%4G!S}(t25+E!+HyN2;2!WFa`F2KYjpw7 z=z*KTa?A_hF08MCTfv{>{olZCSpNY&4c@a6zQG;fQ{X}H3GhR3KX@G63w{ND1pW$2 zf7+(#J{Nov>yJU{w*qbluYxawKZ0+78}5mo9|E^v{XU2fIU3UeAICZeegGE19QZr< z7HHf{NE2*;uYf6t^(c4=#1Zlx*b9CSJ_2sJpOA;Z?V!wSHz?zJGv)xe1M5#>UIAak z`c}-p!5Y>tJP_6D7AXA*Q2PH9lsavO=(3JGL8;TL;A@}g*UZ?Q|NR zvW7RPp7r(8en(5OtnC~n2Vr2@*$$QSpmvPmM%P2quz233aW2?Qni(CUwQt_mIn#UD z@m+4)74JZ&r0uZSnbg6wlbVMcG!OpB5hWP45ED7T+@xbD!3Ydth2t9Sd%KtF8Z^?} zr6jQ*MMvIcjthaiWNe9?^w?YQ0KrFEaH*rZ1^v!!c}zHGO5UAt&7 z*BC83%W94#-yGd!pYmc@7`T)g$8NG;Z5?Ay0tt5$aWZJlR*CQ@MZHXTVNy(<5hrFu ztr3njX{#~BFU^p!ToF~DH%t6Nwe@Y2e>N$`ixg*QSPJ+TGuRU~d@7XB<;D0l`9#!* z#ktGs%y=HZc(KxI&hm>ls5oDg4hz?KA>UdIx(J^NMER!jCn^hKw4&_&dN@*pm6#f$ zqCCdON{EhMZgkM)K;rml7)*1&h?s<5jY9}WR22L~B^(*T|JX}wE}*=488^cj-b%g5 zz~}Y6nDE8B+2XK7|lrxk|;kl8ib0R0a#@B&_&iVg|t#7Db^h zYD03k;7O{oS|#{^+KUw_!sxUZTZp5Hx7Xe)UG=H=Rpe@&aPM>@>U4T0EKf@{KSyaM z@+-HZxC^2%vnECry(;oV5gmX~Tl4j`hHbT%#p9QJ*+=}!C_zKC=I3wUB+C-YwVDgMGwMPb^-5I3l`f`lr4SuSG-jmftfapY@7tTf%!<$qd2?7C^>mE^Fl==8cR6w=qRDh16 zB442bn@e5L?(@GIL_yNl^#Gk2i!Mfnm3h08sz?{mk1((smMHP|_$$7@MmwCA?IM;-VNzJ~yp4<{Jo<##QH7;ozPgG;M2k zSj}Q(l3&ETCwe(e1$gP+;i1enJW~~u=rLuqVzc*7HXX4=d_O`#-f|jRb2ot%5BqxJ RBM<~p;!P`y;4ei^{sH%FDD?mU literal 0 HcmV?d00001 diff --git a/core/lang/SL_framework-ko_KR.po b/core/lang/SL_framework-ko_KR.po new file mode 100644 index 0000000..8026fa8 --- /dev/null +++ b/core/lang/SL_framework-ko_KR.po @@ -0,0 +1,439 @@ +msgid "" +msgstr "" +"Generated: SL Framework (http://www.sedlex.fr)\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2013-06-02T20:12:35+00:00\n" +"Last-Translator: www.fbkit.com \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Poedit-Language: Korean\n" +"X-Poedit-Country: Korea\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-KeywordsList: __;\n" +"X-Poedit-Basepath: \n" +"X-Poedit-Bookmarks: \n" +"X-Poedit-SearchPath-0: .\n" +"X-Textdomain-Support: yes\n" + +msgid "About..." +msgstr "소개" + +msgid "Settings" +msgstr "설정" + +msgid "Log options" +msgstr "로그 옵션" + +msgid "What is the debug level:" +msgstr "디버그 레벨" + +msgid "See the debug logs" +msgstr "디보그 로그 보기" + +msgid "1=log only the critical errors;" +msgstr "1=심각한 오류 로그만" + +msgid "2=log only the critical errors and the standard errors;" +msgstr "2=심각한 오류 로그와 표준 오류로그만" + +msgid "3=log only the critical errors, the standard errors and the warnings;" +msgstr "3=심각한 오류 로그, 표준로그 그리고 경고로그만" + +msgid "4=log information;" +msgstr "4=로그 정보" + +msgid "5=log verbose;" +msgstr "5=상세 로그" + +msgid "Multisite Management" +msgstr "다중사이트 관리" + +msgid "Do you want to allow sub-blogs to modify the translations of the plugins:" +msgstr "하위블로그들에 이 플러그인의 번역이 적용이 허용되기를 원하십니까:" + +msgid "If this option is unchecked, the translation tab won't be displayed in the blog administration panel." +msgstr "만약 이 옵션이 선택되지 않는다면, 블로그 관리 패널에서 번역탭이 나타나지 않게 됩니다." + +msgid "Summary page for the plugins developped with the SL framework" +msgstr "SL 프레임워크로 개발된 플러그인들을 위한 요약 페이지" + +msgid "For now, you have installed %s plugins including %s plugins developped with the SedLex's framework" +msgstr "현재, 당신은 %s 개의 플러그인을 설치하셨습니다. 설치된 플러그인은 SedLex의 프레임워크로 개발된 %s 개의 플러그인이 포함되어 있습니다." + +msgid "The core plugin is located at %s" +msgstr "핵심 플러그인은 %s 에 자리하고 있습니다." + +msgid "Plugin name" +msgstr "플러그인 이름" + +msgid "Description" +msgstr "설명" + +msgid "There is a SQL database for this plugin" +msgstr "그곳에 이 플러그인을 위한 SQL 데이터베이스가 있습니다." + +msgid "Version: %s by %s" +msgstr "버전: %s by %s" + +msgid "List of SL plugins" +msgstr "SL 플러그인 리스트" + +msgid "Parameters of the framework" +msgstr "프레임워크의 파라미터" + +msgid "Manage translation of the framework" +msgstr "프레임워크의 번역관리" + +msgid "The folder %s is not %s !" +msgstr "%s 폴더는 %s 이 아닙니다 !" + +msgid "The file %s is not %s !" +msgstr "%s 파일는 %s 이 아닙니다 !" + +msgid "The folder %s does not exists and cannot be created !" +msgstr "%s 폴더이 없어서 만들 수 없습니다 !" + +msgid "The file %s does not exists and cannot be created !" +msgstr "%s 파일이 없어서 만들 수 없습니다 !" + +msgid "There are some issues with folders rights. Please corret them as soon as possible as they could induce bugs and instabilities." +msgstr "폴더 권한에 이상이 있습니다. 이로인해 버그와 불안정성이 발생될 수 있으므로 최대한 빨리 수정해 주시기 바랍니다." + +msgid "Please see below:" +msgstr "다음을 참고해 주세요:" + +msgid "Close popup" +msgstr "팝업 닫기" + +msgid "Here, you may configure three levels of translations: at the plugin level, at the framework level, and at the dashboard level." +msgstr "" + +msgid "Please be informed that your current language is %s. Text will be translated if a translation is available." +msgstr "" + +msgid "If you want to modify the language, please go in %s and find %s or %s. The second argument is your language and you may modify it as you want." +msgstr "" + +msgid "Translations available for this plugin (i.e. %s)" +msgstr "" + +msgid "Translations available for the SL framework (stored in %s)" +msgstr "" + +msgid "Adding a new translation for this language: %s" +msgstr "" + +msgid "Sentence to translate" +msgstr "" + +msgid "Translation" +msgstr "" + +msgid "Your name:" +msgstr "" + +msgid "(if your name/pseudo is already in the list, there is no need to fill this input)" +msgstr "" + +msgid "Your email or your website:" +msgstr "" + +msgid "Create the translation files" +msgstr "" + +msgid "Add a new translation" +msgstr "" + +msgid "Modifying the translation for this language: %s" +msgstr "" + +msgid "The number of occurrence of %s does not match in both string. Please note that the string %s will be replaced with a contextual string." +msgstr "" + +msgid "Modify the translation files" +msgstr "" + +msgid "Modify translations" +msgstr "" + +msgid "%s sentences have been translated (i.e. %s)." +msgstr "" + +msgid "%s sentences have been translated (i.e. %s) %s %s sentences have to be checked because they are close (but not identical) to those to translate.%s" +msgstr "" + +msgid "The translation %s have been sent" +msgstr "" + +msgid "An error occured sending the email." +msgstr "" + +msgid "Make sure that your wordpress is able to send email." +msgstr "" + +msgid "Send translation" +msgstr "" + +msgid "%s file cannot be created for %s as there is no translated sentence. Please, translate at least one sentence to create a file" +msgstr "" + +msgid "%s file has been updated for %s" +msgstr "" + +msgid "%s file has been updated from this file" +msgstr "" + +msgid "%s file has been created with a new translation for %s" +msgstr "" + +msgid "%s file has been created from this file" +msgstr "" + +msgid "If you do not want to loose your translations on the next upgrading of this plugin, it is recommended to send the translation files to the author by clicking %s here %s !" +msgstr "" + +msgid "If you do not want to loose your translations on the next upgrading of this plugin, please save them on your hard disk before upgrading and then restore them after the upgrade !" +msgstr "" + +msgid "Confirmation" +msgstr "" + +msgid "Summary cached %s" +msgstr "" + +msgid "The sentences used in this plugin are in English. Help the others users using the same language as you by translating this plugin." +msgstr "" + +msgid "This plugin is available in %s languages." +msgstr "" + +msgid "There are %s sentences to be translated in this plugin." +msgstr "" + +msgid "Language" +msgstr "" + +msgid "Ratio %" +msgstr "" + +msgid "Translators" +msgstr "" + +msgid "This is the default language of the plugin. It cannot be modified." +msgstr "" + +msgid "Modify" +msgstr "" + +msgid "Send to the author of the plugin" +msgstr "" + +msgid "You may add a new translation hereafter (Please note that it is recommended to send your translation to the author so that he would be able to add your translation to the future release of the plugin !)" +msgstr "" + +msgid "Add" +msgstr "" + +msgid "The 'SL framework' is a framework used for developping many plugins like this one. Thus, if you participate translating the framework, it will be very helpful for a bunch of plugins." +msgstr "" + +msgid "There is %s languages supported for the 'SL framework'." +msgstr "" + +msgid "There is %s sentence to be translated in the framework." +msgstr "" + +msgid "Send to the author of the framework" +msgstr "" + +msgid "Add new" +msgstr "" + +msgid "Error: the submitted value is not an integer and thus, the parameter has not been updated!" +msgstr "" + +msgid "Error: the submitted string does not match the constrains" +msgstr "" + +msgid "Error: the submitted file can not be uploaded!" +msgstr "" + +msgid "Error: security issue!" +msgstr "" + +msgid "Parameters" +msgstr "" + +msgid "Here are the parameters of the plugin. Modify them at will to fit your needs." +msgstr "" + +msgid "Here are the parameters of the framework. Modify them at will to fit your needs." +msgstr "" + +msgid "(Delete)" +msgstr "" + +msgid "Values" +msgstr "" + +msgid "Warning: some characters have been removed because they are not allowed here" +msgstr "" + +msgid "(integer)" +msgstr "" + +msgid "(If you want to delete this file, please check this box %s)" +msgstr "" + +msgid "Update" +msgstr "" + +msgid "Reset to default values" +msgstr "" + +msgid "Some parameters have not been updated due to errors (see below)!" +msgstr "" + +msgid "Parameters have been updated (but with some warnings)!" +msgstr "" + +msgid "Parameters have been updated successfully!" +msgstr "" + +msgid "Parameters have been reset to their default values!" +msgstr "" + +msgid "Plugins that you may install" +msgstr "" + +msgid "The following plugins have been developed by the author and are not yet installed:" +msgstr "" + +msgid "Plugin not yet installed" +msgstr "" + +msgid "Description and Screenshots" +msgstr "" + +msgid "All author's plugins have been installed. Thank you!" +msgstr "" + +msgid "Installed plugins" +msgstr "" + +msgid "You have already installed the following author's plugins:" +msgstr "" + +msgid "Plugin already installed" +msgstr "" + +msgid "The Wordpress page: %s" +msgstr "" + +msgid "An Unexpected HTTP Error occurred during the API request." +msgstr "" + +msgid "Last update:" +msgstr "" + +msgid "Rating: %s" +msgstr "" + +msgid "by %s persons" +msgstr "" + +msgid "Number of download:" +msgstr "" + +msgid "Filter: %s" +msgstr "" + +msgid "%s of %s" +msgstr "" + +msgid "Current Page" +msgstr "" + +msgid "Donate" +msgstr "" + +msgid "If you like the plugin, do not hesitate to donate. Please note that this plugin is developed in my spare time for free." +msgstr "" + +msgid "This is not mandatory! but it may be a sign that this plugin fits you needs: it makes me happy..." +msgstr "" + +msgid "Feedback form" +msgstr "" + +msgid "This form is an easy way to contact the author and to discuss issues/incompatibilities/etc. with him" +msgstr "" + +msgid "Contact the author" +msgstr "" + +msgid "Your email:" +msgstr "" + +msgid "Useful... so that the author will be able to anwser you." +msgstr "" + +msgid "Your comments:" +msgstr "" + +msgid "Please note that additional information on your wordpress installation will be sent to the author in order to help the debugging if needed (such as : the wordpress version, the installed plugins, etc.)" +msgstr "" + +msgid "Send feedback" +msgstr "" + +msgid "No email have been provided for the author of this plugin. Therefore, the feedback is impossible" +msgstr "" + +msgid "The feedback has been sent" +msgstr "" + +msgid "KB" +msgstr "" + +msgid "MB" +msgstr "" + +msgid "GB" +msgstr "" + +msgid "Error: %s function is not found" +msgstr "" + +msgid "The file %s cannot be read. You should have a problem with file permissions or security restrictions." +msgstr "" + +msgid "The folder %s cannot be opened. You should have a problem with folder permissions or security restrictions." +msgstr "" + +msgid "The file %s cannot be deleted. You should have a problem with file permissions or security restrictions." +msgstr "" + +msgid "An other process is still running (it runs for %s seconds)" +msgstr "" + +msgid "The file %s cannot be modified/created. You should have a problem with file permissions or security restrictions." +msgstr "" + +msgid "The file %s cannot be created. You should have a problem with file permissions or security restrictions." +msgstr "" + +msgid "The file %s cannot be compressed." +msgstr "" + +msgid "The file %s cannot be renamed. You should have a problem with file permissions or security restrictions." +msgstr "" + +msgid "The file %s cannot be modified. You should have a problem with file permissions or security restrictions." +msgstr "" + diff --git a/core/lang/SL_framework-lt_LT.mo b/core/lang/SL_framework-lt_LT.mo new file mode 100644 index 0000000000000000000000000000000000000000..109ca29749c0580cd0dadb0ce2c9b0cffef689f3 GIT binary patch literal 15831 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 literal 0 HcmV?d00001 diff --git a/core/lang/SL_framework-lt_LT.po b/core/lang/SL_framework-lt_LT.po new file mode 100644 index 0000000..2056879 --- /dev/null +++ b/core/lang/SL_framework-lt_LT.po @@ -0,0 +1,441 @@ +msgid "" +msgstr "" +"Generated: SL Framework (http://www.sedlex.fr)\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2014-01-30T09:27:56+00:00\n" +"Last-Translator: Gediminas \n" +"Last-Translator: Zydrius \n" +"Last-Translator: zydrius <1001203@gmail.com>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Poedit-Language: Lithuanian\n" +"X-Poedit-Country: Lithuania\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-KeywordsList: __;\n" +"X-Poedit-Basepath: \n" +"X-Poedit-Bookmarks: \n" +"X-Poedit-SearchPath-0: .\n" +"X-Textdomain-Support: yes\n" + +msgid "About..." +msgstr "Apie..." + +msgid "Settings" +msgstr "Parametrai" + +msgid "Log options" +msgstr "Log parinktis" + +msgid "What is the debug level:" +msgstr "Kas yra derinimo lygis:" + +msgid "See the debug logs" +msgstr "Pamatyti derinimo žurnalą" + +msgid "1=log only the critical errors;" +msgstr "1=log tik kritinės klaidos;" + +msgid "2=log only the critical errors and the standard errors;" +msgstr "2=log tik kritinės kllaidos ir standartinės klaidos;" + +msgid "3=log only the critical errors, the standard errors and the warnings;" +msgstr "3=logi tik kritinės klaidos, standartinės klaidos ir įspėjimai;" + +msgid "4=log information;" +msgstr "4=log informaciją;" + +msgid "5=log verbose;" +msgstr "5=log išsami;" + +msgid "Multisite Management" +msgstr "Kelių tinklapių valdymas" + +msgid "Do you want to allow sub-blogs to modify the translations of the plugins:" +msgstr "Ar norite leisti sub-blogo keisti įskiepio vertimus:" + +msgid "If this option is unchecked, the translation tab won't be displayed in the blog administration panel." +msgstr "Jei ši parinktis nepažymėta, vertimo skirtukas nebus rodomos blogo administravimo skydelyje." + +msgid "Summary page for the plugins developped with the SL framework" +msgstr "Puslapio suvestinės sukūrtos su SL framework" + +msgid "For now, you have installed %s plugins including %s plugins developped with the SedLex's framework" +msgstr "Dabar, turite įdiegti %s įskiepį, įskaitant %s įskiepį sukūrtą SedLex framework" + +msgid "The core plugin is located at %s" +msgstr "Pagrindiniai įskiepiai yra %s" + +msgid "Plugin name" +msgstr "Įskiepio pavadinimas" + +msgid "Description" +msgstr "Aprašymas" + +msgid "There is a SQL database for this plugin" +msgstr "Nėra SQL duomenų bazės šiam įskiepiui" + +msgid "Version: %s by %s" +msgstr "Versija: %s iš %s" + +msgid "List of SL plugins" +msgstr "SL įskiepių sąrašas" + +msgid "Parameters of the framework" +msgstr "Framework parametrai" + +msgid "Manage translation of the framework" +msgstr "Valdyti framework vertimus" + +msgid "The folder %s is not %s !" +msgstr "Aplanko %s nėra %s!" + +msgid "The file %s is not %s !" +msgstr "Failo %s nėra %s!" + +msgid "The folder %s does not exists and cannot be created !" +msgstr "Aplanko %s nėra ir negali būti sukurtas!" + +msgid "The file %s does not exists and cannot be created !" +msgstr "Failo %s nėra ir negali būti sukurtas!" + +msgid "There are some issues with folders rights. Please corret them as soon as possible as they could induce bugs and instabilities." +msgstr "Yra kai kurių aplankų teisės. Prašome priskirti juos kuo greičiau, nes jie gali sukelti klaidas ir nestabilumą." + +msgid "Please see below:" +msgstr "Žiūrėkite žemiau:" + +msgid "Close popup" +msgstr "Uždaryti Iššokantis langas" + +msgid "Please be informed that your current language is %s. Text will be translated if a translation is available." +msgstr "Informuojame, kad savo dabartinėje kalboje yra %s. Tekstas išverčiamas per vertėją." + +msgid "Translations available for this plugin (i.e. %s)" +msgstr "Galimi vertimai šiems įskiepiams (t. y. %s)" + +msgid "Adding a new translation for this language: %s" +msgstr "Pridėti naujos kalbos vertimą: %s" + +msgid "Sentence to translate" +msgstr "Išversti sakinį" + +msgid "Translation" +msgstr "Vertimas" + +msgid "Your name:" +msgstr "Jūsų vardas:" + +msgid "Your email or your website:" +msgstr "Jūsų el. pašto adresas arba jūsų svetainės adresas:" + +msgid "Create the translation files" +msgstr "Sukurti vertimo failą" + +msgid "Add a new translation" +msgstr "Pridėti naują vertimą" + +msgid "Modifying the translation for this language: %s" +msgstr "Taisyti šios kalbos vertimą: %s" + +msgid "Modify the translation files" +msgstr "Keisti vertimo failą" + +msgid "Modify translations" +msgstr "Keisti vertimą" + +msgid "%s sentences have been translated (i.e. %s)." +msgstr "%s sakinių išversta (t. y. %s)." + +msgid "The translation %s have been sent" +msgstr "Vertimas %s buvo išsiustas" + +msgid "An error occured sending the email." +msgstr "Įvyko klaida siunčiant elektroniniu paštu." + +msgid "Make sure that your wordpress is able to send email." +msgstr "Įsitikinkite, kad jūsų wordpress turi galimybę siųsti laišką." + +msgid "Send translation" +msgstr "Atsiųsti vertimą" + +msgid "%s file cannot be created for %s as there is no translated sentence. Please, translate at least one sentence to create a file" +msgstr "%s failo negaliu sukurti %sm nes nėra išversta nei vieno sakinio. Išverskite bent vieną sakinį, kad sukurti failą" + +msgid "%s file has been updated for %s" +msgstr "%s failas buvo atnaujintas %s" + +msgid "%s file has been updated from this file" +msgstr "%s failas buvo atnaujintas iš šio failo" + +msgid "%s file has been created with a new translation for %s" +msgstr "%s failas buvo atnaujintas su nauju vertimu iš %s" + +msgid "%s file has been created from this file" +msgstr "%s failas buvo sukurtas iš šio failo" + +msgid "If you do not want to loose your translations on the next upgrading of this plugin, it is recommended to send the translation files to the author by clicking %s here %s !" +msgstr "Jei nenorite prarasti savo vertimo atnaujinant, šio modulio vertimą patartina siųsti autoriui spustelėdami %s čia %s!" + +msgid "If you do not want to loose your translations on the next upgrading of this plugin, please save them on your hard disk before upgrading and then restore them after the upgrade !" +msgstr "Jei nenorite prarasti savo vertimo atnaujinant, šio įskiepio failą įrašykite į kietąjį diską prieš atnaujinimą ir tada atkurkite juos po atnaujinimo!" + +msgid "Confirmation" +msgstr "Patvirtinimas" + +msgid "Summary cached %s" +msgstr "Suvestinės suma %s" + +msgid "The sentences used in this plugin are in English. Help the others users using the same language as you by translating this plugin." +msgstr "Naudoti šio įskiepio sakiniai yra anglų kalba. Padėti kitiems vartotojams naudoti ta pačia kalba kaip jūs, išverčiant šį įskiepį." + +msgid "This plugin is available in %s languages." +msgstr "Šis įskiepis yra %s kalbomis." + +msgid "There are %s sentences to be translated in this plugin." +msgstr "%s sakiniai turi būti išversti šiame įskiepyje." + +msgid "Language" +msgstr "Kalba" + +msgid "Ratio %" +msgstr "Santykis %" + +msgid "Translators" +msgstr "Vertėjai" + +msgid "This is the default language of the plugin. It cannot be modified." +msgstr "Įskiepis yra įjungtas numatytąja kalba. Jis negali būti pakeistas." + +msgid "Modify" +msgstr "Keisti" + +msgid "Send to the author of the plugin" +msgstr "Siųsti įskiepio autoriui" + +msgid "Add" +msgstr "Pridėti" + +msgid "Add new" +msgstr "Pridėti naują" + +msgid "Here, you may configure three levels of translations: at the plugin level, at the framework level, and at the dashboard level." +msgstr "Čia, galite konfigūruoti trijų lygių vertimus: įskiepiu lygiu, sistemos lygiu, ir ataskaitų srities lygmeniu." + +msgid "If you want to modify the language, please go in %s and find %s or %s. The second argument is your language and you may modify it as you want." +msgstr "Jei norite pakeisti kalbą, eikite į %s ir surasti %s arba %s. Antrasis argumentas yra jūsų kalboje ir galite modifikuoti jį kaip norite." + +msgid "Translations available for the SL framework (stored in %s)" +msgstr "Vertimai galimi pagal SL (saugomi %s)" + +msgid "(if your name/pseudo is already in the list, there is no need to fill this input)" +msgstr "(jei jūsų vardas/pseudo jau sąraše, nebūtina užpildyti šio lauko)" + +msgid "The number of occurrence of %s does not match in both string. Please note that the string %s will be replaced with a contextual string." +msgstr "%s skaičiai neatitinka eilutėje. Atkreipkite dėmesį, kad seka %s pakeis kontekstinę vertę." + +msgid "%s sentences have been translated (i.e. %s) %s %s sentences have to be checked because they are close (but not identical) to those to translate.%s" +msgstr "%s sakinių yra išversta (t. y. %s) %s %s sakinius reikia patikrinti, nes jie yra uždaryti (tačiau ne identiški) vertime.%s" + +msgid "You may add a new translation hereafter (Please note that it is recommended to send your translation to the author so that he would be able to add your translation to the future release of the plugin !)" +msgstr "Galite pridėti naujų vertimų toliau (Atkreipkite dėmesį, kad rekomenduojama siųsti savo vertimą autoriui, kad jis galėtų pridėti vertimą prie naujos įskiepio versijos!)" + +msgid "The 'SL framework' is a framework used for developping many plugins like this one. Thus, if you participate translating the framework, it will be very helpful for a bunch of plugins." +msgstr ""SL framework" – tai sistema naudojama plėtoti daug įskiepių kaip ši. Taigi jūsų išversta sistema padės įskiepių kūrėjams." + +msgid "There is %s languages supported for the 'SL framework'." +msgstr "%s kalbos palaiko "SL framework"." + +msgid "There is %s sentence to be translated in the framework." +msgstr "%s sakiniai yra išversti šioje sistemoje." + +msgid "Send to the author of the framework" +msgstr "Siųsti autoriui" + +msgid "Error: the submitted value is not an integer and thus, the parameter has not been updated!" +msgstr "Klaida: pateikta reikšmė nėra sveikasis skaičius ir tokiu būdu, parametras nebuvo atnaujintas!" + +msgid "Error: the submitted string does not match the constrains" +msgstr "Klaida: pateikta eilutė nesutampa su apribojimų" + +msgid "Error: the submitted file can not be uploaded!" +msgstr "Klaida: pateikta byla gali būti nenusiųsta!" + +msgid "Error: security issue!" +msgstr "Klaida: saugumo spraga!" + +msgid "Parameters" +msgstr "Parametrai" + +msgid "Here are the parameters of the plugin. Modify them at will to fit your needs." +msgstr "Yra įjungti šie parametrai. Modifikuoti bus, kurie atitinka jūsų poreikius." + +msgid "Here are the parameters of the framework. Modify them at will to fit your needs." +msgstr "Šie parametrai iš framework. Modifikuoti bus kurie atitinka jūsų poreikius." + +msgid "(Delete)" +msgstr "(Naikinti)" + +msgid "Values" +msgstr "Reikšmės" + +msgid "Warning: some characters have been removed because they are not allowed here" +msgstr "Įspėjimas: kai kurie simboliai jau buvo pašalinti, nes jie čia negali būti" + +msgid "(integer)" +msgstr "(sveikasis skaičius)" + +msgid "(If you want to delete this file, please check this box %s)" +msgstr "(Jei norite ištrinti šį failą, patikrinkite šį langelį %s)" + +msgid "Update" +msgstr "Atnaujinimas" + +msgid "Reset to default values" +msgstr "Iš naujo nustatyti numatytąsias reikšmes" + +msgid "Some parameters have not been updated due to errors (see below)!" +msgstr "Kai kurių parametrų negalima atnaujinti dėl klaidų (žr. toliau)!" + +msgid "Parameters have been updated (but with some warnings)!" +msgstr "Atnaujinti parametrus (bet yra keletas įspėjimų)!" + +msgid "Parameters have been updated successfully!" +msgstr "Parametrai atnaujinti sėkmingai!" + +msgid "Parameters have been reset to their default values!" +msgstr "Parametrai jau buvo iš naujo nustatyti į numatytąsias reikšmes!" + +msgid "Plugins that you may install" +msgstr "Įskiepį galite įdiegti" + +msgid "The following plugins have been developed by the author and are not yet installed:" +msgstr "Šių įskiepių parengė autorius ir dar nebuvo įdiegta:" + +msgid "Plugin not yet installed" +msgstr "Įskiepis dar neįdiegtas" + +msgid "Description and Screenshots" +msgstr "Aprašymas ir užsklanda" + +msgid "All author's plugins have been installed. Thank you!" +msgstr "Visi autoriaus įskiepiai yra įdiegti. Ačiū!" + +msgid "Installed plugins" +msgstr "Įdiegti papildiniai" + +msgid "You have already installed the following author's plugins:" +msgstr "Šio autoriaus įskiepiai yra:" + +msgid "Plugin already installed" +msgstr "Įskiepis jau įdiegtas" + +msgid "The Wordpress page: %s" +msgstr "Wordpress puslapis: %s" + +msgid "An Unexpected HTTP Error occurred during the API request." +msgstr "Netikėta HTTP klaida vykdant API užklausa." + +msgid "Last update:" +msgstr "Paskutinis atnaujinimas:" + +msgid "Rating: %s" +msgstr "Reitingas: %s" + +msgid "by %s persons" +msgstr "%s asmenys" + +msgid "Number of download:" +msgstr "Parsiųsta kartu:" + +msgid "Filter: %s" +msgstr "Filtras: %s" + +msgid "%s of %s" +msgstr "%s iš %s" + +msgid "Current Page" +msgstr "Esamas puslapis" + +msgid "Donate" +msgstr "Parama" + +msgid "If you like the plugin, do not hesitate to donate. Please note that this plugin is developed in my spare time for free." +msgstr "Jei šis įskiepis jums patinka, tai paremkite mane. Šis įskiepis kurtas laisvu mano laiku ir yra nemokamas." + +msgid "This is not mandatory! but it may be a sign that this plugin fits you needs: it makes me happy..." +msgstr "Tai nėra privaloma! Bet tai gali būti ženklas, kad šis įskiepis atitinka jūsų poreikius." + +msgid "Feedback form" +msgstr "Užklausos forma" + +msgid "This form is an easy way to contact the author and to discuss issues/incompatibilities/etc. with him" +msgstr "Ši forma yra paprastas būdas susisiekti su autoriumi ir aptarti įvairius klausimus/nesuderinamumo/ir t.t." + +msgid "Contact the author" +msgstr "Autoriaus kontaktai" + +msgid "Your email:" +msgstr "Jūsų el.paštas:" + +msgid "Useful... so that the author will be able to anwser you." +msgstr "Naudinga.... nes autorius galės su jumis susiekti." + +msgid "Your comments:" +msgstr "Jūsų komentarai:" + +msgid "Please note that additional information on your wordpress installation will be sent to the author in order to help the debugging if needed (such as : the wordpress version, the installed plugins, etc.)" +msgstr "Atkreipkite dėmesį, kad papildomos informacijos apie savo WordPress diegimo bus išsiųstas autoriui, siekiant padėti derinti, jei reikia (pavyzdžiui: WordPress versija, įdiegta įskiepių ir tt)" + +msgid "Send feedback" +msgstr "Siusti užklausą" + +msgid "No email have been provided for the author of this plugin. Therefore, the feedback is impossible" +msgstr "Laiškų pateikti neimanoma šiam įskiepių autoriui. Todėl, kad grįžtamasis ryšys yra neįmanomas" + +msgid "The feedback has been sent" +msgstr "Atsiliepimas išsiųstas" + +msgid "KB" +msgstr "KB" + +msgid "MB" +msgstr "MB" + +msgid "GB" +msgstr "GB" + +msgid "Error: %s function is not found" +msgstr "Klaida: %s funkcija nerasta" + +msgid "The file %s cannot be read. You should have a problem with file permissions or security restrictions." +msgstr "Failas%s negali būti perskaitytas. Jūs turite failą su leidimais ar saugumo apribojimo problemų." + +msgid "The folder %s cannot be opened. You should have a problem with folder permissions or security restrictions." +msgstr "Byla %s negali būti atidarytas. Jūs turite failą su leidimais ar saugumo apribojimo problemų." + +msgid "The file %s cannot be deleted. You should have a problem with file permissions or security restrictions." +msgstr "Failas%s negali būti ištrintas. Jūs turite failą su leidimais ar saugumo apribojimo problemų." + +msgid "An other process is still running (it runs for %s seconds)" +msgstr "Kitas procesas vis dar veikia (tai trunka%s sekundžių)" + +msgid "The file %s cannot be modified/created. You should have a problem with file permissions or security restrictions." +msgstr "Failas %s negali būti keičiamas/sukurtas. Jūs turite failą su leidimais ar saugumo apribojimo problemų." + +msgid "The file %s cannot be created. You should have a problem with file permissions or security restrictions." +msgstr "Failas %s negali būti sukurtas. Jūs turite failą su leidimais ar saugumo apribojimo problemų." + +msgid "The file %s cannot be compressed." +msgstr "Failas %s negali būti suspaustas." + +msgid "The file %s cannot be renamed. You should have a problem with file permissions or security restrictions." +msgstr "Failas %s negali būti pervardintas. Jūs turite failą su leidimais ar saugumo apribojimo problemų." + +msgid "The file %s cannot be modified. You should have a problem with file permissions or security restrictions." +msgstr "Failas %s negali būti keičiamas. Jūs turite failą su leidimais ar saugumo apribojimo problemų." + diff --git a/core/lang/SL_framework-nl_NL.mo b/core/lang/SL_framework-nl_NL.mo new file mode 100644 index 0000000000000000000000000000000000000000..79537fbb1ef3b202c215801ebabee5530603ad05 GIT binary patch literal 15150 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\n" +"Last-Translator: Erik \n" +"Last-Translator: Mark \n" +"Last-Translator: infotittenraus.com \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Poedit-Language: Dutch\n" +"X-Poedit-Country: Netherlands\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-KeywordsList: __;\n" +"X-Poedit-Basepath: \n" +"X-Poedit-Bookmarks: \n" +"X-Poedit-SearchPath-0: .\n" +"X-Textdomain-Support: yes\n" + +msgid "About SL plugins..." +msgstr "Over SL Plugins..." + +msgid "About..." +msgstr "Over.." + +msgid "Settings" +msgstr "Instellingen" + +msgid "Log options" +msgstr "Log opties" + +msgid "What is the debug level:" +msgstr "Wat is het Debug niveau" + +msgid "See the debug logs" +msgstr "Kijk in de debug logs" + +msgid "1=log only the critical errors;" +msgstr "1=noteer alleen de kritische fouten;" + +msgid "2=log only the critical errors and the standard errors;" +msgstr "2=noteer alleen de kritische fouten en de standaard fouten;" + +msgid "3=log only the critical errors, the standard errors and the warnings;" +msgstr "3=noteer alleen de kritische fouten, standaard fouten en de waarschuwingen;" + +msgid "4=log information;" +msgstr "4=log informatie;" + +msgid "5=log verbose;" +msgstr "" + +msgid "Multisite Management" +msgstr "Multisite Beheer" + +msgid "Do you want to allow sub-blogs to modify the translations of the plugins:" +msgstr "Wilt u sub-blogs toestaan om de vertalingen van de plugins te wijzigen" + +msgid "If this option is unchecked, the translation tab won't be displayed in the blog administration panel." +msgstr "Als deze optie is aangevinkt, wordt het tabblad vertaling niet worden weergegeven in de blog administratie paneel." + +msgid "Location of the SL plugins" +msgstr "Lokatie van de SL Plugin" + +msgid "Where do you want to display the SL plugins:" +msgstr "Waar moet de SL Plugin worden weergegeven:" + +msgid "Summary page for the plugins developped with the SL framework" +msgstr "Overzichtspagina voor de plugins die zijn ontwikkeld met de SL Plugin kader" + +msgid "For now, you have installed %s plugins including %s plugins developped with the SedLex's framework" +msgstr "Voor nu, heb je geïnstalleerd %s  plugins waaronder %s  plugins ontwikkeld met de SedLex kader" + +msgid "The core plugin is located at %s" +msgstr "De kern plugin bevindt zich op deze locatie %s" + +msgid "Plugin name" +msgstr "Plugin naam" + +msgid "Description" +msgstr "Omschrijving" + +msgid "There is a SQL database for this plugin" +msgstr "Daar is de SQL database voor de plugin" + +msgid "Version: %s by %s" +msgstr "Versie: %s bij %s" + +msgid "List of SL plugins" +msgstr "Lijst met de SL plugins" + +msgid "Parameters of the framework" +msgstr "Maatstaf van het kader" + +msgid "Manage translation of the framework" +msgstr "Bewerk de vertaling van het kader" + +msgid "The folder %s is not %s !" +msgstr "De bestandsmap %s is niet %s!" + +msgid "The file %s is not %s !" +msgstr "Het bestand %s is niet %s !" + +msgid "The folder %s does not exists and cannot be created !" +msgstr "De map %s bestaat niet en kan niet aangemaakt worden !" + +msgid "The file %s does not exists and cannot be created !" +msgstr "Het bestand %s bestaat niet en kan niet worden gecreerd !" + +msgid "There are some issues with folders rights. Please corret them as soon as possible as they could induce bugs and instabilities." +msgstr "Er zijn enkele problemen met maprechten. Aanpassingen zijn noodzakelijk om ​​instabiliteit te voorkomen." + +msgid "Please see below:" +msgstr "Kijk hieronder:" + +msgid "Standard" +msgstr "Standaard" + +msgid "under Plugins" +msgstr "onder Plugins" + +msgid "under Tools" +msgstr "onder Gereedschap" + +msgid "under Settings" +msgstr "onder Instellingen" + +msgid "Filter: %s" +msgstr "Fliter: %s" + +msgid "%s of %s" +msgstr "%s van %s" + +msgid "Current Page" +msgstr "Huidige pagina" + +msgid "Donate" +msgstr "Doneer" + +msgid "If you like the plugin, do not hesitate to donate. Please note that this plugin is developed in my spare time for free." +msgstr "Vind je de plugin handig, aarzel dan niet om te doneren. Let op: deze plugin is ontwikkeld in mijn vrije tijd zodat je het gratis kan gebruiken." + +msgid "This is not mandatory! but it may be a sign that this plugin fits you needs: it makes me happy..." +msgstr "Dit is geen verplichting! maar het zou zeer gewaardeerd worden..." + +msgid "Feedback form" +msgstr "Antwoord formulier" + +msgid "This form is an easy way to contact the author and to discuss issues/incompatibilities/etc. with him" +msgstr "Dit formulier is een gemakkelijke manier om contact met de auteur en te bespreken vraagstukken / onverenigbaarheden / etc. met hem" + +msgid "Contact the author" +msgstr "Neem contact op met de auteur" + +msgid "Your name:" +msgstr "Jouw naam:" + +msgid "Your email:" +msgstr "Jouw e-mail:" + +msgid "Useful... so that the author will be able to anwser you." +msgstr "Handig zo dat de auteur jouw vragen kan beantwoorden." + +msgid "Your comments:" +msgstr "Uw commentaar:" + +msgid "Please note that additional information on your wordpress installation will be sent to the author in order to help the debugging if needed (such as : the wordpress version, the installed plugins, etc.)" +msgstr "Houdt u er rekening mee dat er bepaalde informatie van uw WordPress-installatie naar de auteur wordt gestuurd om het debuggen te helpen als dat nodig is (zoals: de wordpress versie, de geïnstalleerde plugins, etc.)" + +msgid "Send feedback" +msgstr "Verstuur commentaar" + +msgid "No email have been provided for the author of this plugin. Therefore, the feedback is impossible" +msgstr "U heeft geen e-mail ingevuld hierdoor kan de auteur geen contact met u opnemen." + +msgid "The feedback has been sent" +msgstr "Het commentaar is verzonden." + +msgid "An error occured sending the email." +msgstr "Er heeft zich een probleem voor gedaan bij het versturen van u e-mail." + +msgid "Make sure that your wordpress is able to send email." +msgstr "Zorg dat u Wordpress site geconfigureerd is om e-mails te verzenden." + +msgid "Plugins that you may install" +msgstr "Plugins die u kunt installeren." + +msgid "The following plugins have been developed by the author and are not yet been installed:" +msgstr "De volgende plugin is ontwikkeld door de auteur maar is nog niet geinstalleerd:" + +msgid "Plugin not yet installed" +msgstr "Plugin is nog niet geïnstalleerd." + +msgid "Description and Screenshots" +msgstr "Omschrijvingen en screenshots" + +msgid "All author's plugins have been installed. Thank you!" +msgstr "Alle plugins van de auteur zijn geinstalleerd. Dank u!" + +msgid "Installed plugins" +msgstr "Geïnstalleerde plugins" + +msgid "You have already installed the following author's plugins:" +msgstr "U heeft de volgende plugins al geinstalleerd:" + +msgid "Plugin already installed" +msgstr "Plugin is al geïnstalleerd" + +msgid "The Wordpress page: %s" +msgstr "De Wordpress pagina: %s" + +msgid "An Unexpected HTTP Error occurred during the API request." +msgstr "Een nog onbekende HTTP fout geconstateerd tijdens de API aanvraag." + +msgid "Last update:" +msgstr "Laatste update:" + +msgid "Rating: %s" +msgstr "Verhouding: %s" + +msgid "by %s persons" +msgstr "Bij %s personen" + +msgid "Number of download:" +msgstr "Aantal downloads" + +msgid "Add new" +msgstr "Nieuwe toevoegen" + +msgid "Error: the submitted value is not an integer and thus, the parameter has not been updated!" +msgstr "Fout: de verzonden waarde is niet voledig daardoor is de parameter niet geupdate!" + +msgid "Error: the submitted string does not match the constrains" +msgstr "Fout: de ingediende string niet overeen met de beperking" + +msgid "Error: the submitted file can not be uploaded!" +msgstr "Fout: Bestand kon niet worden geupload!" + +msgid "Error: security issue!" +msgstr "Fout: veiligheids probleem!" + +msgid "Parameters" +msgstr "Parameters" + +msgid "Here are the parameters of the plugin. Modify them at will to fit your needs." +msgstr "Hier zijn de parameters van de plugin. Pas ze aan naar behoefte." + +msgid "Here are the parameters of the framework. Modify them at will to fit your needs." +msgstr "Hier zijn de parameters van het framework. Pas ze aan naar behoefte." + +msgid "(Delete)" +msgstr "(Gewist)" + +msgid "Values" +msgstr "Waardes" + +msgid "Warning: some characters have been removed because they are not allowed here" +msgstr "Waarschuwing: sommige karakters zijn verwijderd omdat ze niet zijn toegestaan" + +msgid "(integer)" +msgstr "(geheel getal)" + +msgid "The URL is correct and the ID of the media file is %s." +msgstr "De URL klopt en het ID van het mediabestand is %s." + +msgid "The URL is not a media file." +msgstr "De URk is geen mediabestand." + +msgid "Choose a media" +msgstr "Kies een Bestand" + +msgid "(If you want to delete this file, please check this box %s)" +msgstr "(selecteer hier %s als je dit bestand wilt verwijderen)" + +msgid "Update" +msgstr "Aanpassen" + +msgid "Reset to default values" +msgstr "Herstel naar standaard waardes" + +msgid "Some parameters have not been updated due to errors (see below)!" +msgstr "Sommige parameters zijn niet bijgewerkt door fouten (zie hieronder)!" + +msgid "Parameters have been updated (but with some warnings)!" +msgstr "Parameter zijn bijgewerkt (maar met een aantal waarschuwingen)!" + +msgid "Parameters have been updated successfully!" +msgstr "Parameter zijn succesvol bijgewerkt !" + +msgid "Parameters have been reset to their default values!" +msgstr "Parameter zijn gereset naar standaardinstellingen!" + +msgid "Close popup" +msgstr "Sluit Popup" + +msgid "Here, you may configure three levels of translations: at the plugin level, at the framework level, and at the dashboard level." +msgstr "Hier, kunt u drie niveaus van de vertaling configureren: dashboard niveau,plugin niveau,kader niveau." + +msgid "Please be informed that your current language is %s. Text will be translated if a translation is available." +msgstr "Let op uw huidige taal is %s.Tekst wordt pas vertaald als een vertaling beschikbaar is." + +msgid "If you want to modify the language, please go in %s and find %s or %s. The second argument is your language and you may modify it as you want." +msgstr "Als u de taal wilt wijzigen, ga dan naar %s  en vind %s  of %s . Het tweede argument is uw taal en u kunt het aanpassen als je wilt." + +msgid "Translations available for this plugin (i.e. %s)" +msgstr "Vertalingen beschikbaar voor deze plugin (dat wil zeggen %s)" + +msgid "Translations available for the SL framework (stored in %s)" +msgstr "Vertalingen beschikbaar voor de SL kader(opgeslagen in %s)" + +msgid "Adding a new translation for this language: %s" +msgstr "Voeg een nieuwe vertaling toe voor deze taal: %s" + +msgid "Sentence to translate" +msgstr "Zin om te vertalen" + +msgid "Translation" +msgstr "Vertaling" + +msgid "(if your name/pseudo is already in the list, there is no need to fill this input)" +msgstr "(als je naam / pseudo is al in de lijst, is er geen noodzaak om deze input te vullen)" + +msgid "Your email or your website:" +msgstr "Jouw email of jouw website" + +msgid "Create the translation files" +msgstr "Creer de vertallings bestanden" + +msgid "Add a new translation" +msgstr "Voeg een nieuwe vertaling toe" + +msgid "Modifying the translation for this language: %s" +msgstr "Het wijzigen van de vertaling voor deze taal:%s " + +msgid "The number of occurrence of %s does not match in both string. Please note that the string %s will be replaced with a contextual string." +msgstr "Het aantal optreden van %s  komt niet overeen beide reeks. Houd er rekening mee dat de reeks %s zal worden vervangen door een contextuele reeks." + +msgid "Modify the translation files" +msgstr "De vertalings bestand aanpassen" + +msgid "Modify translations" +msgstr "Vertaling aanpassen" + +msgid "%s sentences have been translated (i.e. %s)." +msgstr "%s zinnen zijn vertaald (i.e %s)" + +msgid "%s sentences have been translated (i.e. %s) %s %s sentences have to be checked because they are close (but not identical) to those to translate.%s" +msgstr "%s  zinnen zijn vertaald (dwz %s) %s  %s  zinnen moeten worden gecontroleerd omdat ze gesloten (maar niet identiek) aan die te vertalen.%s " + +msgid "The translation %s have been sent" +msgstr "De vertaling %s is verzonden" + +msgid "Send translation" +msgstr "Verstuur vertalling" + +msgid "%s file cannot be created for %s as there is no translated sentence. Please, translate at least one sentence to create a file" +msgstr "%s  bestand kan niet worden gemaakt voor %s  omdat er geen vertaade zin is. Alstublieft, vertalen tenminste een zin aan een bestand aan te maken" + +msgid "%s file has been updated for %s" +msgstr "%s bestand is geupdate voor %s" + +msgid "%s file has been updated from this file" +msgstr "%s bestand is geupdate vanaf dit bestand" + +msgid "%s file has been created with a new translation for %s" +msgstr "%s bestand is gemaakt met een nieuwe vertalling voor %s" + +msgid "%s file has been created from this file" +msgstr "%s bestand is gemaakt voor dit bestand" + +msgid "If you do not want to loose your translations on the next upgrading of this plugin, it is recommended to send the translation files to the author by clicking %s here %s !" +msgstr "Als u niet wilt dat uw vertalingen verdwijnt met volgende opwaardering van deze plugin, is het raadzaam om het vertalings bestand naar de auteur te sturen door hier te klikken %s  of hier %s !" + +msgid "If you do not want to loose your translations on the next upgrading of this plugin, please save them on your hard disk before upgrading and then restore them after the upgrade !" +msgstr "Als u niet wilt dat uw vertalingen verdwijnt de volgende opwaardering van deze plugin, gelieve deze op te slaan op uw harde schijf voordat u een upgrade installeerd" + +msgid "Confirmation" +msgstr "Bevestigd" + +msgid "Summary cached %s" +msgstr "Samenvatting cached %s " + +msgid "The sentences used in this plugin are in English. Help the others users using the same language as you by translating this plugin." +msgstr "De zinnen die in deze plugin zijn in het Engels. De anderen helpen gebruikers met behulp van dezelfde taal als u door het vertalen van deze plugin." + +msgid "This plugin is available in %s languages." +msgstr "Deze plugin is beschikbaar in %s  talen." + +msgid "There are %s sentences to be translated in this plugin." +msgstr "Er zijn %s zinnen te vertalen in deze plugin." + +msgid "Language" +msgstr "Taal" + +msgid "Ratio %" +msgstr "Verhouding %" + +msgid "Translators" +msgstr "Vertalers" + +msgid "This is the default language of the plugin. It cannot be modified." +msgstr "Dit is de standaard taalinstelling van de plugin. Deze kan niet worden veranderd." + +msgid "Modify" +msgstr "Aanpassen" + +msgid "Send to the author of the plugin" +msgstr "Stuur naar de auteur van de plugin" + +msgid "You may add a new translation hereafter (Please note that it is recommended to send your translation to the author so that he would be able to add your translation to the future release of the plugin !)" +msgstr "U kunt een nieuwe vertaling hiernamaals toe te voegen (Let op: het is aan te raden om uw vertaling te sturen aan de auteur, zodat hij in staat om uw vertaling toe te voegen aan de toekomstige versie van de plugin zou zijn!)" + +msgid "Add" +msgstr "Toevoegen" + +msgid "The 'SL framework' is a framework used for developping many plugins like this one. Thus, if you participate translating the framework, it will be very helpful for a bunch of plugins." +msgstr "De 'SL framework' is een raamwerk gebruikt voor het ontwikkelen van vele plugins zoals deze. Dus, als u zou willen deelnemen in het vertalen van het kader, zal het zeer nuttig zijn voor een heleboel plugins." + +msgid "There is %s languages supported for the 'SL framework'." +msgstr "Er zijn %s talen ondersteund voor de 'SL kader'." + +msgid "There is %s sentence to be translated in the framework." +msgstr "Er zijn %s zinnen te vertalen in het kader." + +msgid "Send to the author of the framework" +msgstr "Verzenden aan de auteur van het kader" + +msgid "KB" +msgstr "kB" + +msgid "MB" +msgstr "MB" + +msgid "GB" +msgstr "GB" + diff --git a/core/lang/SL_framework-pl_PL.mo b/core/lang/SL_framework-pl_PL.mo new file mode 100644 index 0000000000000000000000000000000000000000..a2ca72c7299e70661a436da0b4469c0e5712b340 GIT binary patch literal 16144 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\n" +"Last-Translator: vyachek \n" +"Last-Translator: MarekMackiewicz \n" +"Last-Translator: Albert221 \n" +"Last-Translator: Lukasz \n" +"Last-Translator: krzysiek \n" +"Last-Translator: MichalKotekKotnowski \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Poedit-Language: Polish\n" +"X-Poedit-Country: Poland\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-KeywordsList: __;\n" +"X-Poedit-Basepath: \n" +"X-Poedit-Bookmarks: \n" +"X-Poedit-SearchPath-0: .\n" +"X-Textdomain-Support: yes\n" + +msgid "About..." +msgstr "O ..." + +msgid "Settings" +msgstr "Ustawienia" + +msgid "Log options" +msgstr "Opcje dziennika zdarzeń" + +msgid "What is the debug level:" +msgstr "Poziom debugowania" + +msgid "See the debug logs" +msgstr "Pokaż dziennik debugowania" + +msgid "1=log only the critical errors;" +msgstr "1=zapisuj tylko błędy krytyczne" + +msgid "2=log only the critical errors and the standard errors;" +msgstr "2=zapisuj błędy krytyczne i zwykłe" + +msgid "3=log only the critical errors, the standard errors and the warnings;" +msgstr "3=zapisuj błędy i ostrzeżenia" + +msgid "4=log information;" +msgstr "4=zapisuj informacje" + +msgid "5=log verbose;" +msgstr "5=log rozszerzony" + +msgid "Multisite Management" +msgstr "Opcje dla trybu Multisite" + +msgid "Do you want to allow sub-blogs to modify the translations of the plugins:" +msgstr "Czy indywidualne blogi mogą modyfikować pliki tłumaczeń?" + +msgid "If this option is unchecked, the translation tab won't be displayed in the blog administration panel." +msgstr "Jeżeli ta opcja jest odznaczona, panel tłumaczeń nie będzie się wyświetlał" + +msgid "Summary page for the plugins developped with the SL framework" +msgstr "Wtyczki z rodziny SL" + +msgid "Plugin name" +msgstr "Nazwa wtyczki" + +msgid "Description" +msgstr "Opis" + +msgid "There is a SQL database for this plugin" +msgstr "Ta wtyczka używa bazy SQL" + +msgid "Version: %s by %s" +msgstr "Wersja: %s od %s" + +msgid "List of SL plugins" +msgstr "Lista wtyczek SL" + +msgid "Parameters of the framework" +msgstr "Ustawienia rdzenia SL" + +msgid "Manage translation of the framework" +msgstr "Zarządzaj tłumaczeniem rdzenia SL" + +msgid "The folder %s is not %s !" +msgstr "Folder %s nie jest %s !" + +msgid "The file %s is not %s !" +msgstr "Plik %s nie jest %s !" + +msgid "The folder %s does not exists and cannot be created !" +msgstr "Folder %s nie istnieje i nie może być utworzony !" + +msgid "The file %s does not exists and cannot be created !" +msgstr "Plik %s nie istnieje i nie może być utworzony !" + +msgid "There are some issues with folders rights. Please corret them as soon as possible as they could induce bugs and instabilities." +msgstr "Wystąpiły problemy z prawami dostępu. Napraw je, aby uniknąć błędów i zagrożeń stabilności." + +msgid "Please see below:" +msgstr "Patrz niżej" + +msgid "Close popup" +msgstr "Zamknij okienko" + +msgid "Here, you may configure three levels of translations: at the plugin level, at the framework level, and at the dashboard level." +msgstr "Możesz ustawić trzy poziomy tłumaczenia: poziom wtyczki, poziom rdzenia i poziom panelu administracyjnego" + +msgid "Please be informed that your current language is %s. Text will be translated if a translation is available." +msgstr "Obecny język: %s. Jeśli pojawi się tłumaczenie, zostanie ono wyświetlone." + +msgid "If you want to modify the language, please go in %s and find %s or %s. The second argument is your language and you may modify it as you want." +msgstr "Jeśli chcesz zmodyfikować język, otwórz plik %s i znajdź %s lub %s. Wartość xx_YY oznacza Twój język i kraj (np en_US)" + +msgid "Translations available for this plugin (i.e. %s)" +msgstr "Jest dostępne tłumaczenie dla wtyczki %s" + +msgid "Translations available for the SL framework (stored in %s)" +msgstr "Tłumaczenie rdzenia jest przechowywane we wtyczce %s" + +msgid "Adding a new translation for this language: %s" +msgstr "Nowe tłumaczenie dla języka %s" + +msgid "Sentence to translate" +msgstr "Pole do przetłumaczenia" + +msgid "Translation" +msgstr "Tłumaczenie" + +msgid "Your name:" +msgstr "Twoje imię:" + +msgid "(if your name/pseudo is already in the list, there is no need to fill this input)" +msgstr "(Jeśli Twoje imię / pseudo znajduje się już na liście, nie musisz tego wypełniać)" + +msgid "Your email or your website:" +msgstr "Twój e-mal lub strona www:" + +msgid "Create the translation files" +msgstr "Wykonaj pliki tłumaczenia" + +msgid "Add a new translation" +msgstr "Dodaj nowe tłumaczenie" + +msgid "Modifying the translation for this language: %s" +msgstr "Edytujesz tłumaczenie na język %s" + +msgid "Modify the translation files" +msgstr "Wprowadź zmiany w plikach językowych" + +msgid "Modify translations" +msgstr "Zmień tłumaczenie" + +msgid "%s sentences have been translated (i.e. %s)." +msgstr "Przetłumaczono %s pól (czyli %s)" + +msgid "%s sentences have been translated (i.e. %s) %s %s sentences have to be checked because they are close (but not identical) to those to translate.%s" +msgstr "Przetłumaczono %s pól (czyli %s) Należy sprawdzić %s %s pól, ponieważ są zbliżone do pól źródłowych.%s" + +msgid "The translation %s have been sent" +msgstr "Tłumaczenie %s zostało wysłane." + +msgid "An error occured sending the email." +msgstr "Wystąpił błąd podczas wysyłania maila" + +msgid "Make sure that your wordpress is able to send email." +msgstr "Upewnij się, że możesz wysyłać maile przez Wordpressa" + +msgid "Send translation" +msgstr "Wyślij tłumaczenie" + +msgid "%s file cannot be created for %s as there is no translated sentence. Please, translate at least one sentence to create a file" +msgstr "Plik %s dla języka %s nie może zostać utworzony, ponieważ nie przetłumaczono żadnego pola. Aby utworzyć plik tłumaczenia, przetłumacz co najmniej jedno pole" + +msgid "%s file has been updated for %s" +msgstr "Plik %s dla języka %s został zaktualizowany." + +msgid "%s file has been updated from this file" +msgstr "Plik %s został zaktualizowany treścią tego pliku." + +msgid "%s file has been created with a new translation for %s" +msgstr "Utworzono plik %s z nowym tłumaczeniem dla języka %s" + +msgid "%s file has been created from this file" +msgstr "Utworzono plik %s z treści tego pliku" + +msgid "If you do not want to loose your translations on the next upgrading of this plugin, it is recommended to send the translation files to the author by clicking %s here %s !" +msgstr "Jeśli nie chcesz stracić tłumaczeń przy aktualizacji wtyczki, wyślij je autorowi wtyczki, klikając %s here %s !" + +msgid "If you do not want to loose your translations on the next upgrading of this plugin, please save them on your hard disk before upgrading and then restore them after the upgrade !" +msgstr "Jeśli nie chcesz stracić tłumaczeń przy aktualizacji wtyczki, zapisz je na dysku i przywróć po aktualizacji" + +msgid "Confirmation" +msgstr "Potwierdzenie" + +msgid "The sentences used in this plugin are in English. Help the others users using the same language as you by translating this plugin." +msgstr "Wtyczka jest w języku angielskim. Przetłumacz ją na swój język." + +msgid "This plugin is available in %s languages." +msgstr "Znaleziono tłumaczenie w %s językach." + +msgid "Language" +msgstr "Język" + +msgid "Ratio %" +msgstr "% przetłumaczonych pól" + +msgid "Translators" +msgstr "Tłumacz" + +msgid "This is the default language of the plugin. It cannot be modified." +msgstr "To jest domyślny język wtyczki. Nie podlega tłumaczeniu" + +msgid "Modify" +msgstr "Modyfikuj" + +msgid "Send to the author of the plugin" +msgstr "Wyślij autorowi wtyczki" + +msgid "You may add a new translation hereafter (Please note that it is recommended to send your translation to the author so that he would be able to add your translation to the future release of the plugin !)" +msgstr "Tutaj możesz dodać nowe tłumaczenie (zaleca się wysłanie tłumaczenia autorowi wtyczki, aby mógł on je dołączyć do następnego wydania wtyczki!)" + +msgid "Add" +msgstr "Dodaj" + +msgid "The 'SL framework' is a framework used for developping many plugins like this one. Thus, if you participate translating the framework, it will be very helpful for a bunch of plugins." +msgstr "Platforma SL służy do rozwoju wielu wtyczek podobnych do tej. Jeśli przetłumaczysz rdzeń SL wspomoże to rozwój tłumaczeń dla innych wtyczek z rodziny SL." + +msgid "Send to the author of the framework" +msgstr "Wyślij autorowi platformy SL" + +msgid "Add new" +msgstr "Dodaj nowy" + +msgid "Error: the submitted value is not an integer and thus, the parameter has not been updated!" +msgstr "Błąd: Podana wartość nie jest liczbą całkowitą. Zmiany nie zostały zapisane!" + +msgid "Error: the submitted string does not match the constrains" +msgstr "Błąd: Podana wartość nie spełnia wymogów pola!" + +msgid "Error: the submitted file can not be uploaded!" +msgstr "Błąd: Ten plik nie może być wysłany" + +msgid "Error: security issue!" +msgstr "Naruszenie bezpieczeństwa!" + +msgid "Parameters" +msgstr "Parametry" + +msgid "Here are the parameters of the plugin. Modify them at will to fit your needs." +msgstr "Poniżej znajdują się parametry wtyczki. Edytuj je wedle potrzeb." + +msgid "Here are the parameters of the framework. Modify them at will to fit your needs." +msgstr "Poniżej znajdują się parametry rdzenia SL. Edytuj je wedle potrzeb." + +msgid "(Delete)" +msgstr "(Usuń)" + +msgid "Values" +msgstr "Wartości" + +msgid "Warning: some characters have been removed because they are not allowed here" +msgstr "Uwaga: usunięto niedozwolone znaki" + +msgid "(integer)" +msgstr "(liczba całkowita)" + +msgid "(If you want to delete this file, please check this box %s)" +msgstr "(Aby usunąć plik, zaznacz to pole %s)" + +msgid "Update" +msgstr "Zastosuj" + +msgid "Reset to default values" +msgstr "Przywróć ustawienia domyślne" + +msgid "Some parameters have not been updated due to errors (see below)!" +msgstr "Niektóre parametry nie zostały zaktualizowane, ze względu na błędy (patrz niżej)!" + +msgid "Parameters have been updated (but with some warnings)!" +msgstr "Parametry zostały zaktualizowane, ale wystąpiły pewne błędy" + +msgid "Parameters have been updated successfully!" +msgstr "Pomyślnie zaktualizowano wszystkie parametry!" + +msgid "Parameters have been reset to their default values!" +msgstr "Przywrócono wartości domyślne!" + +msgid "Plugins that you may install" +msgstr "Inne wtyczki autora" + +msgid "The following plugins have been developed by the author and are not yet installed:" +msgstr "Następujące wtyczki autora nie zostały jeszcze zainstalowane." + +msgid "Plugin not yet installed" +msgstr "Wtyczka nie zainstalowana" + +msgid "Description and Screenshots" +msgstr "Opis i screeny" + +msgid "All author's plugins have been installed. Thank you!" +msgstr "Zainstalowano wszystkie wtyczki tego autora! Dziękujemy!" + +msgid "Installed plugins" +msgstr "Zainstalowane wtyczki" + +msgid "You have already installed the following author's plugins:" +msgstr "Masz już zainstalowane następujące wtyczki autora" + +msgid "Plugin already installed" +msgstr "Wtyczka zainstalowana" + +msgid "The Wordpress page: %s" +msgstr "Strona Wordpressa: %s" + +msgid "An Unexpected HTTP Error occurred during the API request." +msgstr "Wystąpił nieoczekiwany błąd HTTP podczas próby uzyskania numeru API." + +msgid "Last update:" +msgstr "Ostatnia aktualizacja:" + +msgid "Rating: %s" +msgstr "Ocena: %s" + +msgid "by %s persons" +msgstr "przez %s osób" + +msgid "Number of download:" +msgstr "Ściągnięto (razy):" + +msgid "Filter: %s" +msgstr "Filtruj: %s" + +msgid "%s of %s" +msgstr "%s z %s" + +msgid "Current Page" +msgstr "Bieżąca strona" + +msgid "Donate" +msgstr "Wesprzyj" + +msgid "If you like the plugin, do not hesitate to donate. Please note that this plugin is developed in my spare time for free." +msgstr "Jeśli spodobała Ci się wtyczka, proszę wesprzyj mnie finansowo. Pamiętaj, że piszę wtyczki za darmo w swoim wolnym czasie" + +msgid "This is not mandatory! but it may be a sign that this plugin fits you needs: it makes me happy..." +msgstr "To nie jest obowiązkowe! Jednakże pokaże mi, że doceniasz moją pracę." + +msgid "Feedback form" +msgstr "Daj mi znać" + +msgid "This form is an easy way to contact the author and to discuss issues/incompatibilities/etc. with him" +msgstr "Ten formularz pozwala skontaktować się z autorem w sprawie błędów / kompatybilności etc." + +msgid "Contact the author" +msgstr "Kontakt z autorem" + +msgid "Your email:" +msgstr "Twój email:" + +msgid "Useful... so that the author will be able to anwser you." +msgstr "Wymagane aby autor mógł Ci odpowiedzieć" + +msgid "Your comments:" +msgstr "Twój komentarz:" + +msgid "Please note that additional information on your wordpress installation will be sent to the author in order to help the debugging if needed (such as : the wordpress version, the installed plugins, etc.)" +msgstr "Uwaga: Aby ułatwić debugowanie, do formularza zostaną dołączone informacje dotyczące Twojej instalacji Wordpressa (wersja wordpressa, zainstalowane wtyczki etc.)" + +msgid "Send feedback" +msgstr "Wyślij" + +msgid "No email have been provided for the author of this plugin. Therefore, the feedback is impossible" +msgstr "Nie podano adresu e-mail nadawcy. Wiadomość nie została wysłana!" + +msgid "The feedback has been sent" +msgstr "Wysłano" + +msgid "KB" +msgstr "KB" + +msgid "MB" +msgstr "MB" + +msgid "GB" +msgstr "GB" + +msgid "Error: %s function is not found" +msgstr "Błąd: Nie znaleziono funkcji %s." + +msgid "The file %s cannot be read. You should have a problem with file permissions or security restrictions." +msgstr "Nie można odczytać pliku %s. Zapewne nie masz wystarczających uprawnień." + +msgid "The folder %s cannot be opened. You should have a problem with folder permissions or security restrictions." +msgstr "Nie można otworzyć folderu %s. Zapewne nie masz wystarczających uprawnień." + +msgid "The file %s cannot be deleted. You should have a problem with file permissions or security restrictions." +msgstr "Nie można usunąć pliku %s. Zapewne nie masz wystarczających uprawnień." + +msgid "An other process is still running (it runs for %s seconds)" +msgstr "Inny proces nadal działa (od %s sekund)" + +msgid "The file %s cannot be modified/created. You should have a problem with file permissions or security restrictions." +msgstr "Nie można edytować/utworzyć pliku %s. Zapewne nie masz wystarczających uprawnień." + +msgid "The file %s cannot be created. You should have a problem with file permissions or security restrictions." +msgstr "Nie można utworzyć pliku %s. Zapewne nie masz wystarczających uprawnień." + +msgid "The file %s cannot be compressed." +msgstr "Nie można spakować pliku %s." + +msgid "The file %s cannot be renamed. You should have a problem with file permissions or security restrictions." +msgstr "Nie można zmienić nazwy pliku %s. Zapewne nie masz wystarczających uprawnień." + +msgid "The file %s cannot be modified. You should have a problem with file permissions or security restrictions." +msgstr "Nie można edytować pliku %s. Zapewne nie masz wystarczających uprawnień." + +msgid "The core plugin is located at %s" +msgstr "Rdzeń wtyczki znajduje się w %s" + +msgid "For now, you have installed %s plugins including %s plugins developped with the SedLex's framework" +msgstr "Jak dotąd zainstalowano %s wtyczek, w tym %s utworzonych przez SedLex" + +msgid "There are %s sentences to be translated in this plugin." +msgstr "W tej wtyczce jest %s pól do przetłumaczenia." + +msgid "About SL plugins..." +msgstr "O wtyczkach SL..." + +msgid "Location of the SL plugins" +msgstr "Lokalizacja wtyczek SL" + +msgid "Where do you want to display the SL plugins:" +msgstr "Gdzie chcesz wyświetlić wtyczki SL:" + +msgid "Standard" +msgstr "Standard" + +msgid "under Plugins" +msgstr "pod Wtyczkami" + +msgid "under Tools" +msgstr "pod Narzedziami" + +msgid "under Settings" +msgstr "pod Ustawieniami" + +msgid "The following plugins have been developed by the author and are not yet been installed:" +msgstr "Następujące wtyczki tego autora nie zostały jeszcze zainstalowane:" + +msgid "The URL is correct and the ID of the media file is %s." +msgstr "URL jest poprawny, ID pliku mediów to %s." + +msgid "The URL is not a media file." +msgstr "URL nie jest plikiem mediów." + +msgid "Choose a media" +msgstr "Wybierz plik mediów" + +msgid "The number of occurrence of %s does not match in both string. Please note that the string %s will be replaced with a contextual string." +msgstr "Liczba wystąpień %s nie pasuje do obu ciągów znaków. Zwróć uwagę, iż ciąg %s zostanie zastąpiony ciągiem kontekstowym." + +msgid "Summary cached %s" +msgstr "Podsumowanie %s w cache" + +msgid "There is %s languages supported for the 'SL framework'." +msgstr "'Framework SL' wspiera obecnie %s języków." + +msgid "There is %s sentence to be translated in the framework." +msgstr "Pozostało %s wyrażeń do przetłumaczneia we frameworku." + diff --git a/core/lang/SL_framework-pt_BR.mo b/core/lang/SL_framework-pt_BR.mo new file mode 100644 index 0000000000000000000000000000000000000000..a5532c1d7c5d9a7badbd10c6573974e08e1a862c GIT binary patch literal 7143 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 dOFpQMclLyHS\n" +"Last-Translator: IuriJacob \n" +"Last-Translator: Anderson \n" +"Last-Translator: AlbertAbrantes \n" +"Last-Translator: Vanderson \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Poedit-Language: Portuguese\n" +"X-Poedit-Country: Brazil\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-KeywordsList: __;\n" +"X-Poedit-Basepath: \n" +"X-Poedit-Bookmarks: \n" +"X-Poedit-SearchPath-0: .\n" +"X-Textdomain-Support: yes\n" + +msgid "About..." +msgstr "Sobre" + +msgid "Settings" +msgstr "Configurações" + +msgid "Log options" +msgstr "Opções de log" + +msgid "What is the debug level:" +msgstr "Qual é o nível de debug:" + +msgid "See the debug logs" +msgstr "Visualizar os logs de debug" + +msgid "1=log only the critical errors;" +msgstr "1=logar somente erros críticos;" + +msgid "2=log only the critical errors and the standard errors;" +msgstr "2=logar somente erros críticos e os erros padrões;" + +msgid "3=log only the critical errors, the standard errors and the warnings;" +msgstr "3=logar somente erros críticos, os erros padrões e os avisos;" + +msgid "4=log information;" +msgstr "4=log de informação;" + +msgid "5=log verbose;" +msgstr "5=log completo;" + +msgid "Multisite Management" +msgstr "Gerencia Multisite" + +msgid "Do you want to allow sub-blogs to modify the translations of the plugins:" +msgstr "Você quer permitir que sub-blogs alterem as traduções dos plugins:" + +msgid "If this option is unchecked, the translation tab won't be displayed in the blog administration panel." +msgstr "Se esta opção estiver desmarcada, a aba de tradução não será exibida no painel de administração do blog." + +msgid "Summary page for the plugins developped with the SL framework" +msgstr "Página de sumário para plugins desenvolvidos com o SL framework" + +msgid "Plugin name" +msgstr "Nome do plugin" + +msgid "Description" +msgstr "Descrição" + +msgid "There is a SQL database for this plugin" +msgstr "Existe um banco de dados SQL para este plugin" + +msgid "Version: %s by %s" +msgstr "Versão: %s by %s" + +msgid "List of SL plugins" +msgstr "Lista de plugins" + +msgid "Parameters of the framework" +msgstr "Parâmetros do framework" + +msgid "Manage translation of the framework" +msgstr "Gerenciar traduções do framework" + +msgid "The folder %s is not %s !" +msgstr "A pasta %s não é %s!" + +msgid "The file %s is not %s !" +msgstr "O arquivo %s não é %s!" + +msgid "The folder %s does not exists and cannot be created !" +msgstr "A pasta %s não existe e não pode ser criada!" + +msgid "The file %s does not exists and cannot be created !" +msgstr "O arquivo %s não existe e não pode ser criado!" + +msgid "There are some issues with folders rights. Please corret them as soon as possible as they could induce bugs and instabilities." +msgstr "Existem alguns problemas com os direitos de acesso às pastas. Por favor corrija as permissões o quanto antes, já que elas podem induzir bugs e instabilidades." + +msgid "Please see below:" +msgstr "Por favor, veja abaixo:" + +msgid "Close popup" +msgstr "Fechar pop-up" + +msgid "Here, you may configure three levels of translations: at the plugin level, at the framework level, and at the dashboard level." +msgstr "Aqui, você pode configurar três níveis de traduções: ao nível plugin, ao nível da estrutura, e ao nível do painel." + +msgid "Please be informed that your current language is %s. Text will be translated if a translation is available." +msgstr "Informamos que seu idioma atual é %s. O texto será traduzido se a tradução está disponível." + +msgid "If you want to modify the language, please go in %s and find %s or %s. The second argument is your language and you may modify it as you want." +msgstr "Se você quiser modificar o idioma, por favor, vá em %s e encontrar %s ou %s. O segundo argumento é o seu idioma e você pode modificá-la como quiser." + +msgid "Confirmation" +msgstr "Confirmação" + +msgid "Error: the submitted value is not an integer and thus, the parameter has not been updated!" +msgstr "Erro: o valor submetido não é um inteiro e, por isso, o parâmetro não foi atualizado!" + +msgid "Error: the submitted string does not match the constrains" +msgstr "Erro: a string submetida não corresponde com a restrição" + +msgid "Error: the submitted file can not be uploaded!" +msgstr "Erro: o arquivo submetido não pôde ser enviado!" + +msgid "Error: security issue!" +msgstr "Erro: problema de segurança!" + +msgid "Parameters" +msgstr "Parâmetros" + +msgid "Plugins that you may install" +msgstr "Plugins que você pode instalar" + +msgid "The following plugins have been developed by the author and are not yet installed:" +msgstr "Os seguintes plugins foram desenvolvidos pelo autor e não estão instalados ainda:" + +msgid "Plugin not yet installed" +msgstr "Plugin não instalado ainda" + +msgid "Description and Screenshots" +msgstr "Descrição e Screenshots" + +msgid "All author's plugins have been installed. Thank you!" +msgstr "Todos os plugins do autor foram instalados. Obrigado!" + +msgid "Installed plugins" +msgstr "Plugins instalados" + +msgid "You have already installed the following author's plugins:" +msgstr "Você já instalou os seguintes plugins do autor:" + +msgid "Plugin already installed" +msgstr "Plugins já instalados" + +msgid "The Wordpress page: %s" +msgstr "A página do Wordpress: %s" + +msgid "An Unexpected HTTP Error occurred during the API request." +msgstr "Um erro de HTTP inesperado ocorreu durante a requisição da API." + +msgid "Last update:" +msgstr "Última atualização:" + +msgid "Rating: %s" +msgstr "Classificação: %s" + +msgid "by %s persons" +msgstr "por %s pessoas" + +msgid "Number of download:" +msgstr "Número de downloads:" + +msgid "Current Page" +msgstr "Página Atual" + +msgid "Donate" +msgstr "Doar" + +msgid "Feedback form" +msgstr "Formulário de Feedback" + +msgid "Contact the author" +msgstr "Entre em contato com o Author" + +msgid "Your name:" +msgstr "Nome:" + +msgid "Your email:" +msgstr "Email:" + +msgid "Your comments:" +msgstr "Seus comentários:" + +msgid "Send feedback" +msgstr "Enviar feedback" + +msgid "The feedback has been sent" +msgstr "Seu feedback foi enviado" + +msgid "An error occured sending the email." +msgstr "Um erro ocorreu ao enviar este email." + +msgid "Make sure that your wordpress is able to send email." +msgstr "Se assegure que o Wordpress está habilitado para enviar emails." + +msgid "The following plugins have been developed by the author and are not yet been installed:" +msgstr "Os seguintes plugins foram desenvolvido pelo autor e ainda não foram instalados:" + +msgid "Add new" +msgstr "Adicionar novo" + +msgid "(Delete)" +msgstr "(Deletar)" + +msgid "Values" +msgstr "Valores" + +msgid "Warning: some characters have been removed because they are not allowed here" +msgstr "Atenção: alguns caracteres foram removidos pois não podem ser utilizados aqui" + +msgid "Modify" +msgstr "Modificar" + +msgid "Send to the author of the plugin" +msgstr "Enviar para o autor do plugin" + +msgid "Add" +msgstr "Adicionar" + +msgid "KB" +msgstr "KB" + +msgid "MB" +msgstr "MB" + +msgid "GB" +msgstr "GB" + +msgid "About SL plugins..." +msgstr "Sobre Plugins SL" + +msgid "Location of the SL plugins" +msgstr "Localização dos Plugins SL" + +msgid "Filter: %s" +msgstr "Filtros: %s" + +msgid "%s of %s" +msgstr "%s of %s" + +msgid "Update" +msgstr "Atualizar" + +msgid "Reset to default values" +msgstr "Retornar aos valores Padrões" + +msgid "Sentence to translate" +msgstr "Sentenças para Traduzir" + +msgid "Translation" +msgstr "Tradução" + +msgid "Your email or your website:" +msgstr "Seu Email ou WebSite:" + +msgid "Add a new translation" +msgstr "Adicionar uma nova Tradução" + +msgid "Modify translations" +msgstr "Modificar Tradução" + +msgid "Send translation" +msgstr "Enviar Tradução" + +msgid "Language" +msgstr "Idioma" + +msgid "Translators" +msgstr "Tradutore" + diff --git a/core/lang/SL_framework-pt_PT.mo b/core/lang/SL_framework-pt_PT.mo new file mode 100644 index 0000000000000000000000000000000000000000..4b198abef62801d2970cc64ebe9500d6c6f1a14d GIT binary patch literal 15452 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 literal 0 HcmV?d00001 diff --git a/core/lang/SL_framework-pt_PT.po b/core/lang/SL_framework-pt_PT.po new file mode 100644 index 0000000..d5554fb --- /dev/null +++ b/core/lang/SL_framework-pt_PT.po @@ -0,0 +1,404 @@ +msgid "" +msgstr "" +"Generated: SL Framework (http://www.sedlex.fr)\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2013-04-15T09:18:35+00:00\n" +"Last-Translator: NunoVieira \n" +"Last-Translator: JooVentura \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Poedit-Language: Portuguese\n" +"X-Poedit-Country: Portugal\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-KeywordsList: __;\n" +"X-Poedit-Basepath: \n" +"X-Poedit-Bookmarks: \n" +"X-Poedit-SearchPath-0: .\n" +"X-Textdomain-Support: yes\n" + +msgid "About..." +msgstr "Sobre..." + +msgid "Settings" +msgstr "Definições" + +msgid "Log options" +msgstr "Opções de relatório" + +msgid "What is the debug level:" +msgstr "Qual é o nível de depuração:" + +msgid "See the debug logs" +msgstr "Mostrar relatórios de depuração" + +msgid "1=log only the critical errors;" +msgstr "1=relata só os erros críticos;" + +msgid "2=log only the critical errors and the standard errors;" +msgstr "2=relata só os erros críticos e os erros normais;" + +msgid "3=log only the critical errors, the standard errors and the warnings;" +msgstr "3=relata só os erros críticos, os erros normais e os avisos;" + +msgid "4=log information;" +msgstr "4=relata as informações;" + +msgid "5=log verbose;" +msgstr "5=relatório detalhado;" + +msgid "Multisite Management" +msgstr "Gestão Multisite" + +msgid "Do you want to allow sub-blogs to modify the translations of the plugins:" +msgstr "Você quer permitir que sub-blogs possam modificar as traduções dos plugins:" + +msgid "If this option is unchecked, the translation tab won't be displayed in the blog administration panel." +msgstr "Se esta opção estiver desmarcada, o separador de tradução não será exibido no painel de administração do blog." + +msgid "Summary page for the plugins developped with the SL framework" +msgstr "Página de resumo para os plugins desenvolvidos com a 'SL framework'" + +msgid "Plugin name" +msgstr "Nome do plugin" + +msgid "Description" +msgstr "Descrição" + +msgid "There is a SQL database for this plugin" +msgstr "Existe uma base de dados SQL para este plugin" + +msgid "Version: %s by %s" +msgstr "Versão: %s de %s" + +msgid "List of SL plugins" +msgstr "Lista dos plugins SL" + +msgid "Parameters of the framework" +msgstr "Parâmetros da framework" + +msgid "Manage translation of the framework" +msgstr "Gerir tradução da framework" + +msgid "The folder %s is not %s !" +msgstr "A pasta %s não é %s !" + +msgid "The file %s is not %s !" +msgstr "O ficheiro %s não é %s !" + +msgid "The folder %s does not exists and cannot be created !" +msgstr "A pasta %s não existe e não pode ser criada !" + +msgid "The file %s does not exists and cannot be created !" +msgstr "O ficheiro %s não existe e não pode ser criado !" + +msgid "There are some issues with folders rights. Please corret them as soon as possible as they could induce bugs and instabilities." +msgstr "Existem alguns problemas com as permissões das pastas. Por favor, corrija-os o mais rápido possível, porque poderão induzir bugs e instabilidades." + +msgid "Please see below:" +msgstr "Por favor veja em baixo:" + +msgid "Close popup" +msgstr "Fechar janela de pop-up" + +msgid "Here, you may configure three levels of translations: at the plugin level, at the framework level, and at the dashboard level." +msgstr "Aqui, você pode configurar três níveis de traduções: ao nível do plugin, ao nível da framework, e ao nível do painel." + +msgid "Please be informed that your current language is %s. Text will be translated if a translation is available." +msgstr "Informamos que seu idioma atual é %s. O texto será traduzido se a tradução estiver disponível." + +msgid "Translations available for this plugin (i.e. %s)" +msgstr "Traduções disponíveis para este plugin (ou seja %s)" + +msgid "Translations available for the SL framework (stored in %s)" +msgstr "Traduções disponíveis para a 'SL framework' (guardado em %s)" + +msgid "Adding a new translation for this language: %s" +msgstr "A adicionar uma nova tradução para este idioma: %s" + +msgid "Sentence to translate" +msgstr "Expressão a tranduzir" + +msgid "Translation" +msgstr "Tradução" + +msgid "Your name:" +msgstr "Seu nome:" + +msgid "(if your name/pseudo is already in the list, there is no need to fill this input)" +msgstr "(se o seu nome/pseudo já está na lista, não há necessidade de preencher este campo)" + +msgid "Your email or your website:" +msgstr "O seu e-mail ou página web:" + +msgid "Create the translation files" +msgstr "Criar os ficheiros de tradução" + +msgid "Add a new translation" +msgstr "Adicionar nova tradução" + +msgid "Modifying the translation for this language: %s" +msgstr "A alterar a tradução para este idioma: %s" + +msgid "Modify the translation files" +msgstr "Alterar os ficheiros de tradução" + +msgid "%s sentences have been translated (i.e. %s)." +msgstr "%s frases foram traduzidas (ou seja %s)." + +msgid "%s sentences have been translated (i.e. %s) %s %s sentences have to be checked because they are close (but not identical) to those to translate.%s" +msgstr "%s frases foram traduzidas (ou seja %s) %s %s frases têm que ser verificadas porque ficaram perto (mas não idênticas) das que estão por traduzir.%s" + +msgid "The translation %s have been sent" +msgstr "A tradução %s foi enviada" + +msgid "An error occured sending the email." +msgstr "Ocorreu um erro ao enviar o e-mail." + +msgid "Make sure that your wordpress is able to send email." +msgstr "Verifique se o seu Wordpress consegue enviar e-mails." + +msgid "%s file has been updated for %s" +msgstr "O ficheiro %s foi atualizado de %s" + +msgid "%s file has been updated from this file" +msgstr "O ficheiro %s foi atualizado deste ficheiro" + +msgid "%s file has been created with a new translation for %s" +msgstr "O ficheiro %s foi criado com a nova tradução de %s" + +msgid "%s file has been created from this file" +msgstr "O ficheiro %s foi criado deste ficheiro" + +msgid "If you do not want to loose your translations on the next upgrading of this plugin, it is recommended to send the translation files to the author by clicking %s here %s !" +msgstr "Se você não quiser perder as suas traduções na próxima atualização do plugin, recomenda-se que envie os ficheiros de tradução para o autor clicando %saqui%s!" + +msgid "If you do not want to loose your translations on the next upgrading of this plugin, please save them on your hard disk before upgrading and then restore them after the upgrade !" +msgstr "Se você não quiser perder as suas traduções na próxima atualização do plugin, por favor guarde-as no seu disco antes de proceder à atualização e restaure-as após a atualização !" + +msgid "The sentences used in this plugin are in English. Help the others users using the same language as you by translating this plugin." +msgstr "As frases usadas neste plugin são em Inglês. Ajude os outros utilizadores que usam o mesmo idioma que você, traduzindo este plugin." + +msgid "Language" +msgstr "Idioma" + +msgid "Ratio %" +msgstr "Rácio %" + +msgid "Translators" +msgstr "Tradutores" + +msgid "This is the default language of the plugin. It cannot be modified." +msgstr "Este é o idioma do plugin por defeito. Não pode ser alterado." + +msgid "Modify" +msgstr "Alterar" + +msgid "Send to the author of the plugin" +msgstr "Enviar ao autor do plugin" + +msgid "You may add a new translation hereafter (Please note that it is recommended to send your translation to the author so that he would be able to add your translation to the future release of the plugin !)" +msgstr "Você pode adicionar uma nova tradução a seguir (Por favor tenha em atenção que é recomendado enviar a sua tradução para o autor para que ele possa adicionar a sua tradução a um lançamento futuro do plugin!)" + +msgid "Add" +msgstr "Adicionar" + +msgid "The 'SL framework' is a framework used for developping many plugins like this one. Thus, if you participate translating the framework, it will be very helpful for a bunch of plugins." +msgstr "A 'SL framework' é uma framework usada para o desenvolvimento de muitos plugins como este. Assim, se você participar traduzindo a framework, irá ser muito útil para um número elevado de plugins." + +msgid "Send to the author of the framework" +msgstr "Enviar ao autor da framework" + +msgid "Error: the submitted value is not an integer and thus, the parameter has not been updated!" +msgstr "Erro: o valor submetido não é um inteiro, logo, o parâmetro não foi atualizado!" + +msgid "Error: the submitted string does not match the constrains" +msgstr "Erro: o texto submetido não cumpre as regras" + +msgid "Error: the submitted file can not be uploaded!" +msgstr "Erro: o ficheiro submetido não pode ser enviado!" + +msgid "Error: security issue!" +msgstr "Erro: problema de segurança!" + +msgid "Parameters" +msgstr "Parâmetros" + +msgid "Here are the parameters of the plugin. Modify them at will to fit your needs." +msgstr "Aqui estão os parâmetros do plugin. Modifique-os como entender para satisfazer as suas necessidades." + +msgid "Here are the parameters of the framework. Modify them at will to fit your needs." +msgstr "Aqui estão os parâmetros da framework. Modifique-os como entender para satisfazer as suas necessidades." + +msgid "Values" +msgstr "Valores" + +msgid "Warning: some characters have been removed because they are not allowed here" +msgstr "Aviso: alguns carateres foram removidos porque não são permitidos aqui" + +msgid "(integer)" +msgstr "(inteiro)" + +msgid "(If you want to delete this file, please check this box %s)" +msgstr "(Se quiser apagar este ficheiro, por favor marque esta caixa %s)" + +msgid "Update" +msgstr "Atualizar" + +msgid "Some parameters have not been updated due to errors (see below)!" +msgstr "Alguns parâmetros não foram atualizados devido a erros (ver em baixo)!" + +msgid "Parameters have been updated (but with some warnings)!" +msgstr "Parâmetros foram atualizados (mas com alguns avisos)!" + +msgid "Parameters have been updated successfully!" +msgstr "Parâmetros foram atualizados com sucesso!" + +msgid "Plugins that you may install" +msgstr "Plugins que poderá instalar" + +msgid "The following plugins have been developed by the author and are not yet installed:" +msgstr "Os seguintes plugins foram desenvolvidos pelo autor e ainda não estão instalados:" + +msgid "Plugin not yet installed" +msgstr "Plugin ainda não instalado" + +msgid "Description and Screenshots" +msgstr "Descrição e Capturas de Ecrã" + +msgid "All author's plugins have been installed. Thank you!" +msgstr "Todos os plugins do autor foram instalados. Obrigado!" + +msgid "Installed plugins" +msgstr "Plugins instalados" + +msgid "You have already installed the following author's plugins:" +msgstr "Você já instalou os seguintes plugins do autor:" + +msgid "Plugin already installed" +msgstr "Plugins já instalados" + +msgid "The Wordpress page: %s" +msgstr "Página no Wordpress: %s" + +msgid "An Unexpected HTTP Error occurred during the API request." +msgstr "Ocorreu um erro HTTP inesperado durante a solicitação à API." + +msgid "Last update:" +msgstr "Última atualização:" + +msgid "Rating: %s" +msgstr "Avaliação: %s" + +msgid "by %s persons" +msgstr "por %s pessoas" + +msgid "Number of download:" +msgstr "Número de transferências:" + +msgid "Feedback form" +msgstr "Formulário de comentário" + +msgid "This form is an easy way to contact the author and to discuss issues/incompatibilities/etc. with him" +msgstr "Este formulário é um meio simples de contactar o autor e discutir falhas/incompatibilidades/etc. com ele" + +msgid "Contact the author" +msgstr "Contactar o autor" + +msgid "Your email:" +msgstr "Seu e-mail:" + +msgid "Useful... so that the author will be able to anwser you." +msgstr "Útil ... para que o autor seja capaz de lhe responder." + +msgid "Your comments:" +msgstr "Seus comentários:" + +msgid "Please note that additional information on your wordpress installation will be sent to the author in order to help the debugging if needed (such as : the wordpress version, the installed plugins, etc.)" +msgstr "Por favor tenha em atenção que as informações adicionais sobre a instalação do WordPress serão enviadas para o autor, a fim de ajudar na depuração se necessário (como por exemplo: a versão do Wordpress, os plugins instalados, etc.)" + +msgid "Send feedback" +msgstr "Enviar comentário" + +msgid "No email have been provided for the author of this plugin. Therefore, the feedback is impossible" +msgstr "O e-mail do autor do plugin não foi disponibilizado. Logo o comentário é impossível" + +msgid "The feedback has been sent" +msgstr "O comentário foi enviado" + +msgid "KB" +msgstr "KB" + +msgid "MB" +msgstr "MB" + +msgid "GB" +msgstr "GB" + +msgid "Error: %s function is not found" +msgstr "Erro: A função %s não foi encontrada" + +msgid "The file %s cannot be read. You should have a problem with file permissions or security restrictions." +msgstr "O ficheiro %s não pode ser lido. Deverá ter problemas com as permissões do ficheiro ou restrições de segurança." + +msgid "The folder %s cannot be opened. You should have a problem with folder permissions or security restrictions." +msgstr "A pasta %s não pode ser aberta. Deverá ter problemas com as permissões do ficheiro ou restrições de segurança." + +msgid "The file %s cannot be deleted. You should have a problem with file permissions or security restrictions." +msgstr "O ficheiro %s não pode ser apagado. Deverá ter problemas com as permissões do ficheiro ou restrições de segurança." + +msgid "An other process is still running (it runs for %s seconds)" +msgstr "Outro processo ainda em execução (irá ser executado durante %s segundos)" + +msgid "The file %s cannot be modified/created. You should have a problem with file permissions or security restrictions." +msgstr "O ficheiro %s não poder ser alterado/criado. Deverá ter problemas com as permissões do ficheiro ou restrições de segurança." + +msgid "The file %s cannot be created. You should have a problem with file permissions or security restrictions." +msgstr "O ficheiro %s não pode ser criado. Deverá ter problemas com as permissões do ficheiro ou restrições de segurança." + +msgid "The file %s cannot be compressed." +msgstr "O ficheiro %s não pode ser comprimido." + +msgid "The file %s cannot be renamed. You should have a problem with file permissions or security restrictions." +msgstr "O ficheiro %s não pode ser renomeado. Deverá ter problemas com as permissões do ficheiro ou restrições de segurança." + +msgid "The file %s cannot be modified. You should have a problem with file permissions or security restrictions." +msgstr "O ficheiro %s não pode ser alterado. Deverá ter problemas com as permissões do ficheiro ou restrições de segurança." + +msgid "Reset to default values" +msgstr "Reset para os valores de origem" + +msgid "Parameters have been reset to their default values!" +msgstr "Os parametros levaram reset para o seu valor de origem" + +msgid "If you want to modify the language, please go in %s and find %s or %s. The second argument is your language and you may modify it as you want." +msgstr "Se quer modificar a linguagem, por favor vá a %s e procure %s ou %s. O segundo argumento é a sua linguagem e pode modificala como quiser." + +msgid "%s file cannot be created for %s as there is no translated sentence. Please, translate at least one sentence to create a file" +msgstr "%s ficheiro não pode ser criado para %s enquanto nao tiver frase traduzida. Por favor, traduza pelo menos uma frase para criar o ficheiro" + +msgid "Summary cached %s" +msgstr "Sumário em cache %s" + +msgid "Donate" +msgstr "Doar" + +msgid "If you like the plugin, do not hesitate to donate. Please note that this plugin is developed in my spare time for free." +msgstr "Se gostas do plugin, não exites em deixar um donativo. Por favor tenh em atenção que este plugin é desenvolvido no meu tempo ivre de borla." + +msgid "This is not mandatory! but it may be a sign that this plugin fits you needs: it makes me happy..." +msgstr "Isto não é obrigatório! Mas isso pode ser um sinal serviu para o que querias: Isso faz-me feliz..." + +msgid "Filter: %s" +msgstr "Filtro: %s" + +msgid "%s of %s" +msgstr "%s de %s" + +msgid "Current Page" +msgstr "Página Actual" + diff --git a/core/lang/SL_framework-ro_RO.mo b/core/lang/SL_framework-ro_RO.mo new file mode 100644 index 0000000000000000000000000000000000000000..92728972e5d1de75862be907709ce1ac0878b01d GIT binary patch literal 2018 zcma)+O=w(I6vvOXYW=qLt6ITZP)Vc)YYW1RT_kB*N+&j$wCbXZJMW#mx$(`t)BBM$ zL2x0`oeQZh?Ls$IDuM`t-D$x^!A%i#(Txkig@PX-2;%>|xfw^1(vX?oyZ4@td(Qd4 zxw>QP+l0R-@OcEE&JD66dUXrYwlThe_5E1C3Em674?X~X2HpmK4T}AD;LYIo;H}_~ zdHox>3+q3@JHQ8TB)T1Z3>5#T!8^e=DDjVgVs{dhcq{q*6u1NH*Ff=q3%m<_H=kbs zcVhiH_%L_{L`wQO^Owxu!AG(G2ly37M(`f+K5zn*dys|f=T}EpyYoDl=Hoy#F+!PgD-*7?-fwyavGHRo&}{}A7oz0{1|)^`=5Z% zfmgvJ;4UQF4KgVC&VbUdbD;F&Lr`?`X=ih+SU6dW*d4g2I}Y#Rch>7)Nz$^ja{G@a3x!{)Z>A=>-bg! zeleNaQ!}_gckaQYcA&i^kPp()ZO@&+)b6Ld6nU{gkYOis;7hMqAs+` zMmjn}^D}gKhV~w)r7ByauP{d=qA7H(So#{;^vpHSn|_I3i0GX5<;ZW}HU0K9$^PRs z3bv-b6&bW?e-p)6=~1JBHfrbbN*&a)P^ZdRWij#bVN%Cnco@WDM-3X2KucqCY8os~ zE%6$7&Jz6cb#I_Rohq%IvMyP11A`ldjDM>kXZ2K~@!D(bp)_(D6FrQ9&$?A@b6( z!KL?1vPP{WZ*@&`t5AA#A*d5qDKvtQG^#C&NVS(+me9WT_&0cE5ML|2M-T{-JKJ31 z5L%yVSP!u6lPZQv-BhgDh+>^jHJau*pfybc8tKAJG>iD?6AsX%XkIL^qw$Vll2IH39qrP5mkxI!UC$`ovijm9n`_5QhpRHQEBS_M zW>N8VnyO3Zj4JShF;aA!_Fb>@o_~AF)buL*xFL$FagF`|7b&Y7mFPB|;El~O$|af! jp%*eR&LaLt7LCAl-hK+df3@=vyNEoiRot4srxyJUt^y-f literal 0 HcmV?d00001 diff --git a/core/lang/SL_framework-ro_RO.po b/core/lang/SL_framework-ro_RO.po new file mode 100644 index 0000000..745e35b --- /dev/null +++ b/core/lang/SL_framework-ro_RO.po @@ -0,0 +1,137 @@ +msgid "" +msgstr "" +"Generated: SL Framework (http://www.sedlex.fr)\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2013-07-15T15:01:35+00:00\n" +"Last-Translator: KreativFont \n" +"Last-Translator: CosminPetrisor \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < 20)) ? 1 : 2); \n" +"X-Poedit-Language: Romanian\n" +"X-Poedit-Country: Romania\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-KeywordsList: __;\n" +"X-Poedit-Basepath: \n" +"X-Poedit-Bookmarks: \n" +"X-Poedit-SearchPath-0: .\n" +"X-Textdomain-Support: yes\n" + +msgid "About..." +msgstr "Despre..." + +msgid "Settings" +msgstr "Setări" + +msgid "Log options" +msgstr "Opţiuni jurnal" + +msgid "What is the debug level:" +msgstr "Care este nivelul de debug:" + +msgid "See the debug logs" +msgstr "Vezi jurnalele de debug" + +msgid "Plugin name" +msgstr "Nume plugin" + +msgid "Description" +msgstr "Descriere" + +msgid "List of SL plugins" +msgstr "Lista plugin-urilor SL" + +msgid "Translation" +msgstr "Traducere" + +msgid "Your name:" +msgstr "Numele tau:" + +msgid "Add a new translation" +msgstr "Adauga o noua traducere" + +msgid "Modify translations" +msgstr "Modifica traducerile" + +msgid "Error: security issue!" +msgstr "Eroare: problema de securitate!" + +msgid "Parameters" +msgstr "Parametrii" + +msgid "(Delete)" +msgstr "(Sterge)" + +msgid "Values" +msgstr "Valori" + +msgid "(integer)" +msgstr "(numai intreg)" + +msgid "Update" +msgstr "Actualizeaza" + +msgid "Description and Screenshots" +msgstr "Descriere si imagini" + +msgid "Last update:" +msgstr "Ultima actualizare" + +msgid "Rating: %s" +msgstr "Evaluare: %s" + +msgid "by %s persons" +msgstr "de catre %s persoane" + +msgid "Number of download:" +msgstr "Numar de descarcari" + +msgid "Current Page" +msgstr "Pagina curenta" + +msgid "Donate" +msgstr "Doneaza" + +msgid "Feedback form" +msgstr "Formular pentru contact" + +msgid "Contact the author" +msgstr "Contacteaza autorul" + +msgid "Your email:" +msgstr "Adresa ta de email" + +msgid "Your comments:" +msgstr "Comentariile tale" + +msgid "Send feedback" +msgstr "Trimite mesaj" + +msgid "The feedback has been sent" +msgstr "Mesajul a fost trimis" + +msgid "KB" +msgstr "Kb" + +msgid "MB" +msgstr "Mb" + +msgid "GB" +msgstr "Gb" + +msgid "1=log only the critical errors;" +msgstr "1=reţine în jurnal doar erorile critice;" + +msgid "2=log only the critical errors and the standard errors;" +msgstr "2=reţine în jurnal doar erorile critice şi cele standard;" + +msgid "3=log only the critical errors, the standard errors and the warnings;" +msgstr "3=reţine în jurnal doar erorile critice, cele standard si avertzările;" + +msgid "4=log information;" +msgstr "4=reţine în jurnal informaţia;" + diff --git a/core/lang/SL_framework-ru_RU.mo b/core/lang/SL_framework-ru_RU.mo new file mode 100644 index 0000000000000000000000000000000000000000..aa18b70952d84db5a4c8d190d512bc2d39ec6edb GIT binary patch literal 20977 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 literal 0 HcmV?d00001 diff --git a/core/lang/SL_framework-ru_RU.po b/core/lang/SL_framework-ru_RU.po new file mode 100644 index 0000000..faab324 --- /dev/null +++ b/core/lang/SL_framework-ru_RU.po @@ -0,0 +1,447 @@ +msgid "" +msgstr "" +"Generated: SL Framework (http://www.sedlex.fr)\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2013-12-10T18:42:50+00:00\n" +"Last-Translator: SedLex \n" +"Last-Translator: Limych \n" +"Last-Translator: Pacifik \n" +"Last-Translator: Slawka \n" +"Last-Translator: alexmv <>\n" +"Last-Translator: rad96 \n" +"Last-Translator: vyachek \n" +"Last-Translator: Copyright \n" +"Last-Translator: Oleg <1uham@rambler.ru>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%100/10==1 ? 2 : n%10==1 ? 0 : (n+9)%10>3 ? 2 : 1;\n" +"X-Poedit-Language: Russian\n" +"X-Poedit-Country: Russia\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-KeywordsList: __;\n" +"X-Poedit-Basepath: \n" +"X-Poedit-Bookmarks: \n" +"X-Poedit-SearchPath-0: .\n" +"X-Textdomain-Support: yes\n" + +msgid "About..." +msgstr "О программе..." + +msgid "Settings" +msgstr "Настройки" + +msgid "Log options" +msgstr "Варианты" + +msgid "What is the debug level:" +msgstr "Уровень отладки" + +msgid "See the debug logs" +msgstr "Смотреть журналы отладки" + +msgid "1=log only the critical errors;" +msgstr "Только критические ошибки" + +msgid "2=log only the critical errors and the standard errors;" +msgstr "Только критические ошибки и стандартные ошибки" + +msgid "3=log only the critical errors, the standard errors and the warnings;" +msgstr "Критические ошибки, стандартные ошибки и предупреждения" + +msgid "4=log information;" +msgstr "Регистрировать информацию" + +msgid "5=log verbose;" +msgstr "Подробности" + +msgid "Multisite Management" +msgstr "Многоузловое управление" + +msgid "Do you want to allow sub-blogs to modify the translations of the plugins:" +msgstr "Перевод плагинов под блоги" + +msgid "If this option is unchecked, the translation tab won't be displayed in the blog administration panel." +msgstr "Если эта опция отключена, вкладка перевод не будет отображаться в панели администрирования блога." + +msgid "Summary page for the plugins developped with the SL framework" +msgstr "Страница сводной информации для плагинов разработанных на основе фреймфорка SL" + +msgid "For now, you have installed %s plugins including %s plugins developped with the SedLex's framework" +msgstr "На данный момент, у вас установлен %s плагинов в том числе %s плагины развитый с рамок SedLex" + +msgid "The core plugin is located at %s" +msgstr "Ядро плагин находится в %s" + +msgid "Plugin name" +msgstr "Название плагина" + +msgid "Description" +msgstr "Описание" + +msgid "There is a SQL database for this plugin" +msgstr "Существует база данных SQL для этого плагина" + +msgid "Version: %s by %s" +msgstr "Версия: %s от %s" + +msgid "List of SL plugins" +msgstr "Список плагинов SL" + +msgid "Parameters of the framework" +msgstr "Параметры фреймворка" + +msgid "Manage translation of the framework" +msgstr "Управление переводом фреймворка" + +msgid "The folder %s is not %s !" +msgstr "Эта папка %s не %s !" + +msgid "The file %s is not %s !" +msgstr "этот файл %s не %s !" + +msgid "The folder %s does not exists and cannot be created !" +msgstr "Папки %s не существует и она не может быть создана!" + +msgid "The file %s does not exists and cannot be created !" +msgstr "Файла %s не существует и он не может быть создан!" + +msgid "There are some issues with folders rights. Please corret them as soon as possible as they could induce bugs and instabilities." +msgstr "Есть некоторые проблемы с папками человека. Пожалуйста, исправьте их как можно скорее, поскольку они могут вызывать ошибки и нестабильности." + +msgid "Please see below:" +msgstr "Пожалуйста, см. ниже:" + +msgid "Close popup" +msgstr "Закрыть всплывающее окно" + +msgid "Here, you may configure three levels of translations: at the plugin level, at the framework level, and at the dashboard level." +msgstr "Здесь вы можете настроить три уровня переводы: на уровне плагинов, на уровне инфраструктуры и на уровне приборной панели." + +msgid "Please be informed that your current language is %s. Text will be translated if a translation is available." +msgstr "Информируем Вас, что ваш текущий язык %s. Текст будет переведен, если перевод." + +msgid "If you want to modify the language, please go in %s and find %s or %s. The second argument is your language and you may modify it as you want." +msgstr "Если вы хотите изменить язык, перейдите в %s и найти %s или %s. Вторым аргументом является ваш язык, и вы можете изменить его, как вы хотите." + +msgid "Translations available for this plugin (i.e. %s)" +msgstr "Для этого плагина доступен перевод (в.т.ч. %s)" + +msgid "Translations available for the SL framework (stored in %s)" +msgstr "Доступные переводы для SL framework (хранится в %s)" + +msgid "Adding a new translation for this language: %s" +msgstr "Добавление новых переводов для данного языка: %s." + +msgid "Sentence to translate" +msgstr "Предложение перевести" + +msgid "Translation" +msgstr "Перевод" + +msgid "Your name:" +msgstr "Ваше имя:" + +msgid "(if your name/pseudo is already in the list, there is no need to fill this input)" +msgstr "(Если ваше имя / псевдо уже в списке, нет необходимости заполнять этот вход)" + +msgid "Your email or your website:" +msgstr "Ваш email или адрес сайта:" + +msgid "Create the translation files" +msgstr "Создать файлы перевода" + +msgid "Add a new translation" +msgstr "Добавить новый перевод" + +msgid "Modifying the translation for this language: %s" +msgstr "Изменение перевод для данного языка:%s" + +msgid "The number of occurrence of %s does not match in both string. Please note that the string %s will be replaced with a contextual string." +msgstr "Количество возникновения %s не совпадает с в обоих строки. Пожалуйста, обратите внимание, что строка %s будут заменены с контекстной строке." + +msgid "Modify the translation files" +msgstr "Изменить файлы перевода" + +msgid "Modify translations" +msgstr "Изменить переводы" + +msgid "%s sentences have been translated (i.e. %s)." +msgstr "%s слов/словосочетаний было переведено (это %s.)" + +msgid "%s sentences have been translated (i.e. %s) %s %s sentences have to be checked because they are close (but not identical) to those to translate.%s" +msgstr "%s приговоры были переведены (т.е.%s ы)%s %s ек приговоры должны быть проверены, так как они близки (но не идентичны) сообщениям, перевести.%s" + +msgid "The translation %s have been sent" +msgstr "перевод %s был отправлен" + +msgid "An error occured sending the email." +msgstr "ошибка отправки электронной почты." + +msgid "Make sure that your wordpress is able to send email." +msgstr "Убедитесь, что ваш WordPress может отправлять электронную почту." + +msgid "Send translation" +msgstr "Отправить перевод" + +msgid "%s file cannot be created for %s as there is no translated sentence. Please, translate at least one sentence to create a file" +msgstr "файл %s не может быть создана для %s, как нет переведены приговор. Пожалуйста, переводить, по крайней мере одно предложение создать файл" + +msgid "%s file has been updated for %s" +msgstr "файл %s была обновлена ​​как %s." + +msgid "%s file has been updated from this file" +msgstr "файл %s была обновлена ​​из этого файла" + +msgid "%s file has been created with a new translation for %s" +msgstr "файл %s была создана с новым переводом на как %s." + +msgid "%s file has been created from this file" +msgstr "файл %s был создан из этого файла" + +msgid "If you do not want to loose your translations on the next upgrading of this plugin, it is recommended to send the translation files to the author by clicking %s here %s !" +msgstr "Если вы не хотите потерять ваши переводы на следующей модернизации этого плагина, рекомендуется отправить файлы переводов для автора, нажав %s. Здесь %s !" + +msgid "If you do not want to loose your translations on the next upgrading of this plugin, please save them on your hard disk before upgrading and then restore them after the upgrade !" +msgstr "Если вы не хотите потерять ваши переводы на следующей модернизации этого плагина, пожалуйста, сохраните их на жестком диске перед обновлением, а затем восстановить их после обновления!" + +msgid "Confirmation" +msgstr "подтверждение, утверждение, конфирмация, подкрепление, квитирование, подтверждение приема, ратификация" + +msgid "Summary cached %s" +msgstr "Резюме кэшируются %s" + +msgid "The sentences used in this plugin are in English. Help the others users using the same language as you by translating this plugin." +msgstr "Наказания, используемые в этом плагине на английском языке. Помощь пользователям другие на том же языке, как вы, переводя этот плагин" + +msgid "This plugin is available in %s languages." +msgstr "Этот плагин доступен в %s языках." + +msgid "There are %s sentences to be translated in this plugin." +msgstr "Есть %s приговоры, которые будут переведены на этого плагина." + +msgid "Language" +msgstr "Язык" + +msgid "Ratio %" +msgstr "Соотношение %" + +msgid "Translators" +msgstr "Переводчики" + +msgid "This is the default language of the plugin. It cannot be modified." +msgstr "Это язык по умолчанию. Он не может быть изменен." + +msgid "Modify" +msgstr "Изменить" + +msgid "Send to the author of the plugin" +msgstr "Отправить автору плагина" + +msgid "You may add a new translation hereafter (Please note that it is recommended to send your translation to the author so that he would be able to add your translation to the future release of the plugin !)" +msgstr "Тут вы можете создать свой язык, если для него нет перевода и перевести 'SL framework' на ваш родной язык и отправить его автору плагина." + +msgid "Add" +msgstr "Добавить" + +msgid "The 'SL framework' is a framework used for developping many plugins like this one. Thus, if you participate translating the framework, it will be very helpful for a bunch of plugins." +msgstr "Тут вы можете сделать перевод для многих плагинов в рамках 'SL framework'. Эти переводы могут и будут использованы и в других плагинах." + +msgid "There is %s languages supported for the 'SL framework'." +msgstr "Существует языки %s поддерживаемые для 'рамках SL'." + +msgid "There is %s sentence to be translated in the framework." +msgstr "Существует предложение %s для перевода в рамках." + +msgid "Send to the author of the framework" +msgstr "Отправить перевод автору SL framework." + +msgid "Add new" +msgstr "Добавить" + +msgid "Error: the submitted value is not an integer and thus, the parameter has not been updated!" +msgstr "Ошибка: представленные значение не является целым числом и, таким образом, параметр не был обновлен!" + +msgid "Error: the submitted string does not match the constrains" +msgstr "Ошибка: представленные строка не совпадает" + +msgid "Error: the submitted file can not be uploaded!" +msgstr "Ошибка: представленные файл не может быть загружен!" + +msgid "Error: security issue!" +msgstr "Ошибка: проблема безопасности!" + +msgid "Parameters" +msgstr "Параметры" + +msgid "Here are the parameters of the plugin. Modify them at will to fit your needs." +msgstr "Вот параметры плагина. Изменить их по своему усмотрению в соответствии с Вашими потребностями." + +msgid "Here are the parameters of the framework. Modify them at will to fit your needs." +msgstr "Вот параметры framework. Изменить их по своему усмотрению в соответствии с Вашими потребностями." + +msgid "(Delete)" +msgstr "(Удалить)" + +msgid "Values" +msgstr "Значения" + +msgid "Warning: some characters have been removed because they are not allowed here" +msgstr "Внимание: некоторые символы были удалены" + +msgid "(integer)" +msgstr "(целое)" + +msgid "(If you want to delete this file, please check this box %s)" +msgstr "(Если вы хотите удалить этот файл, пожалуйста, отметьте этот флажок %s )" + +msgid "Update" +msgstr "Обновить" + +msgid "Reset to default values" +msgstr "Сброс на значения по умолчанию" + +msgid "Some parameters have not been updated due to errors (see below)!" +msgstr "Некоторые параметры не были изменены по причине ошибки (смотри дальше)!" + +msgid "Parameters have been updated (but with some warnings)!" +msgstr "Параметры изменены (но с замечаниями)!" + +msgid "Parameters have been updated successfully!" +msgstr "Параметры удачно изменены!" + +msgid "Parameters have been reset to their default values!" +msgstr "Параметры были сброшены к значениям по умолчанию" + +msgid "Plugins that you may install" +msgstr "Плагины, которые можно установить" + +msgid "The following plugins have been developed by the author and are not yet installed:" +msgstr "Дополнительные плагины автора, которые у вас не установлены:" + +msgid "Plugin not yet installed" +msgstr "Плагин не установлен" + +msgid "Description and Screenshots" +msgstr "Описание и скриншоты" + +msgid "All author's plugins have been installed. Thank you!" +msgstr "Все плагины автора были установлены. Спасибо!" + +msgid "Installed plugins" +msgstr "Установленные плагины" + +msgid "You have already installed the following author's plugins:" +msgstr "У вас уже установлены следующие плагины:" + +msgid "Plugin already installed" +msgstr "Плагин уже установлен" + +msgid "The Wordpress page: %s" +msgstr "Страница на сайте Wordpress: %s" + +msgid "An Unexpected HTTP Error occurred during the API request." +msgstr "Неожиданная ошибка HTTP, произошедшая во время API запроса." + +msgid "Last update:" +msgstr "Последнее обновление:" + +msgid "Rating: %s" +msgstr "Рейтинг: %s" + +msgid "by %s persons" +msgstr "%s людьми" + +msgid "Number of download:" +msgstr "Скачиваний:" + +msgid "Filter: %s" +msgstr "Фильтр: %s" + +msgid "%s of %s" +msgstr "%s годов %s" + +msgid "Current Page" +msgstr "Текущая страница" + +msgid "Donate" +msgstr "жертвовать, дарить" + +msgid "If you like the plugin, do not hesitate to donate. Please note that this plugin is developed in my spare time for free." +msgstr "Если вам нравится плагин, не стесняйтесь, чтобы пожертвовать. Пожалуйста, обратите внимание, что этот плагин разработан в свободное время бесплатно." + +msgid "This is not mandatory! but it may be a sign that this plugin fits you needs: it makes me happy..." +msgstr "Это не является обязательным! но это может быть признаком того, что этот плагин подходит вам необходим: это делает меня счастливым ..." + +msgid "Feedback form" +msgstr "Обратная связь" + +msgid "This form is an easy way to contact the author and to discuss issues/incompatibilities/etc. with him" +msgstr "Эта форма — простой способ связаться с автором и обсудить вопросы / несовместимости / т.д." + +msgid "Contact the author" +msgstr "Связаться с автором" + +msgid "Your email:" +msgstr "Ваш e-mail:" + +msgid "Useful... so that the author will be able to anwser you." +msgstr "Полезная ... так что автор сможет anwser вас" + +msgid "Your comments:" +msgstr "Ваши комментарии:" + +msgid "Please note that additional information on your wordpress installation will be sent to the author in order to help the debugging if needed (such as : the wordpress version, the installed plugins, etc.)" +msgstr "Обратите внимание, что дополнительная информация о вашей установке WordPress будет отправлена автору для того, чтобы помочь в отладке, если это необходимо (например: WordPress версии, установленные плагины и т.д.)" + +msgid "Send feedback" +msgstr "Отправить отзыв" + +msgid "No email have been provided for the author of this plugin. Therefore, the feedback is impossible" +msgstr "Адрес почты не был предоставлен. Обратная связь не возможна." + +msgid "The feedback has been sent" +msgstr "Сообщение было отправлено" + +msgid "KB" +msgstr "Кб" + +msgid "MB" +msgstr "Мб" + +msgid "GB" +msgstr "Гб" + +msgid "Error: %s function is not found" +msgstr "Ошибка: %s функция не найдена" + +msgid "The file %s cannot be read. You should have a problem with file permissions or security restrictions." +msgstr "Файл %s нельзя прочитать. У вас не достаточно прав для этого." + +msgid "The folder %s cannot be opened. You should have a problem with folder permissions or security restrictions." +msgstr "Папка %s не может быть открыта. У вас не достаточно прав для этого." + +msgid "The file %s cannot be deleted. You should have a problem with file permissions or security restrictions." +msgstr "Файл %s нельзя удалить. У вас не достаточно прав для этого." + +msgid "An other process is still running (it runs for %s seconds)" +msgstr "Другой процесс все еще работает (он работает для %s секунд)" + +msgid "The file %s cannot be modified/created. You should have a problem with file permissions or security restrictions." +msgstr "Файл %s не может быть изменен / создан. Вы должны иметь проблемы с правами доступа к файлам или ограничений безопасности." + +msgid "The file %s cannot be created. You should have a problem with file permissions or security restrictions." +msgstr "Файл %s нельзя переименовать. У вас не достаточно прав для этого." + +msgid "The file %s cannot be compressed." +msgstr "Файл %s не может быть сжат." + +msgid "The file %s cannot be renamed. You should have a problem with file permissions or security restrictions." +msgstr "Файл %s нельзя переименовать. У вас не достаточно прав для этого." + +msgid "The file %s cannot be modified. You should have a problem with file permissions or security restrictions." +msgstr "Файл %s нельзя переименовать. У вас не достаточно прав для этого." + diff --git a/core/lang/SL_framework-th_TH.mo b/core/lang/SL_framework-th_TH.mo new file mode 100644 index 0000000000000000000000000000000000000000..0be903d189cd82598873a71984b0c1bcaee2d51b GIT binary patch literal 2507 zcmbW2-D@317{wE>lcR#TcvAc}e;Y|hzp&f3jR+>ab0UNmhX zZPc5Z_>qd5#8R|W+BCMaAoVZkKj4MTUm)Iycj|B6J$rhLNiRHX_SuQ2 zDD@)ak%uZ><9$5V#|hBKp8!4ITi^>|4!#2Z&>#N+-eLUw!%7_ie*?b;4^Y%T*7*ta zx_*9Csj(ST)lYdO&psZp}G}j z%`}?JBa`ST(}8}kh?=K#UgRc?f><*hczWG6J)IlfOv4}#iJOayPL$|gly`Lw<@BU( zr@?H{mh>j(lILf+6OA$36#%69VOtZr}GikaY(|H$# zQPMQYe3(RG(hLu&iAq*KW1#D0bz)qd99OT7tH~hg6hS9cM@=t@P0&)4rlXCNoT)dx zHfVhbt#GF3=-4klikDvaVA9~~QKJ`3p?g6>IYtNGL!A{fM`mJP`>9#eirNd3m#0CJ z#ep|A)21zRm1o(g8f(o5$Zri~ylsk92Swhc`UDqiN%AcIp|KTZb8)ah8h)W9?QcSZ zJ@w9Hy2!$I5$mWeLU)>S7!gHQ)eyz8&M2|h4HKP&)Db4Rw=`qK3KTPg0sSJvR-}7*N9M@Su%C@PKuRVO=z!_Osft_2G1XbR-Tzgs$m> zt~?_oOi%(@Jixpr3NgH@kvsnUFUNd=m!xD=eItb5$({8ptC9V!vrJOjO=qu)2EV_< zhZETdC5HtyEomMmm!S#FU~6b5Vu4T++I}4^B%?zpG%ag5dTZ+-tNFpB9A?nY{W~ ztb%>el2}7WGu-6ZcyXl=5L-3GEg^%3B)V{SJ~Cmj&VC|?fJTFsMyu2AbrvpD%(4`Q z2i1OD6@^vrlStQ4!e!ZihUlkST)!<@%uoyUN~Qi)wF85*j&8)<6s^^(stM3j4RqD;XP{L\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Poedit-Language: Thai\n" +"X-Poedit-Country: Thailand\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-KeywordsList: __;\n" +"X-Poedit-Basepath: \n" +"X-Poedit-Bookmarks: \n" +"X-Poedit-SearchPath-0: .\n" +"X-Textdomain-Support: yes\n" + +msgid "About..." +msgstr "เกี่ยวกับ" + +msgid "Settings" +msgstr "ตั้งค่า" + +msgid "Log options" +msgstr "เข้าสู่ระบบตัวเลือก" + +msgid "What is the debug level:" +msgstr "ระดับการแก้ปัญหาคืออะไร:" + +msgid "See the debug logs" +msgstr "ดูบันทึกการแก้ปัญหา" + +msgid "1=log only the critical errors;" +msgstr "" + +msgid "2=log only the critical errors and the standard errors;" +msgstr "" + +msgid "3=log only the critical errors, the standard errors and the warnings;" +msgstr "" + +msgid "4=log information;" +msgstr "" + +msgid "5=log verbose;" +msgstr "" + +msgid "Multisite Management" +msgstr "" + +msgid "Do you want to allow sub-blogs to modify the translations of the plugins:" +msgstr "คุณต้องการที่จะช่วยให้ย่อยบล็อกเพื่อปรับเปลี่ยนคำแปลของปลั๊กอิน:" + +msgid "If this option is unchecked, the translation tab won't be displayed in the blog administration panel." +msgstr "" + +msgid "Advanced options" +msgstr "ตัวเลือกขั้นสูง" + +msgid "Show the advanced options:" +msgstr "" + +msgid "Will display additionnal information on the plugin (including SVN features). Recommended for developpers which develop plugins with this framework." +msgstr "" + +msgid "Show the developpers documentation:" +msgstr "" + +msgid "You should register a new wordpress plugin first on %s." +msgstr "" + +msgid "What is your SVN Login:" +msgstr "" + +msgid "You should have an account on %s before. Thus, the login will be the same!" +msgstr "" + +msgid "What is your SVN Password:" +msgstr "" + +msgid "Same comment as above..." +msgstr "" + +msgid "What is your Author Name:" +msgstr "" + +msgid "Your author name is the name that is displayed in your plugin." +msgstr "ชื่อผู้เขียนของคุณเป็นชื่อที่แสดงอยู่ในปลั๊กอินของคุณ" + +msgid "Do you want to udate the translations files when the plugin page is called:" +msgstr "" + +msgid "This is useful if you develop a plugin, thus you will see when new sentences need to be translated." +msgstr "ซึ่งเป็นประโยชน์ถ้าคุณพัฒนาปลั๊กอินทำให้คุณจะเห็นเมื่อประโยคใหม่จำเป็นต้องได้รับการแปล" + +msgid "IMAP Login:" +msgstr "IMAP Login:" + +msgid "This is useful if you want that the framework retrieve automatically the translations file into an IMAP mailbox" +msgstr "" + +msgid "IMAP Password:" +msgstr "IMAP Password:" + +msgid "IMAP Server:" +msgstr "IMAP Server:" + +msgid "Should be something like %s" +msgstr "" + +msgid "Summary page for the plugins developped with the SL framework" +msgstr "" + +msgid "The core file used for the SedLex plugins is:" +msgstr "" + +msgid "For now, you have installed %d plugins including %d plugins developped with the 'SL framework':" +msgstr "" + +msgid "Plugin name" +msgstr "" + +msgid "Description" +msgstr "" + +msgid "SVN Management" +msgstr "" + +msgid "Update plugin information..." +msgstr "" + +msgid "There is a SQL database for this plugin" +msgstr "" + +msgid "Version: %s by %s" +msgstr "" + +msgid "Getting SVN information..." +msgstr "" + +msgid "List of SL plugins" +msgstr "" + +msgid "Parameters of the framework" +msgstr "" + +msgid "The following description is a quick tutorial on about how to create a plugin with the SL framework. (Please note that the following description is in English for developpers, sorry for this inconvenience)" +msgstr "รายละเอียดดังต่อไปนี้คือการกวดวิชาอย่างรวดเร็วในเกี่ยวกับวิธีการสร้างปลั๊กอินที่มีการ SL กรอบ (โปรดทราบว่ารายละเอียดดังต่อไปนี้เป็นภาษาอังกฤษสำหรับ developpers ขออภัยในความไม่สะดวก)" + +msgid "How to develop a plugin?" +msgstr "วิธีการพัฒนาปลั๊กอิน?" + +msgid "Framework documentation" +msgstr "" + +msgid "Manage translation of the framework" +msgstr "" + +msgid "An Unexpected HTTP Error occurred during the API request." +msgstr "" + +msgid "This plugin does not seem to be hosted on the wordpress repository." +msgstr "" + +msgid "The Wordpress page: %s" +msgstr "" + +msgid "Last update:" +msgstr "" + +msgid "Rating: %s" +msgstr "" + +msgid "by %s persons" +msgstr "" + +msgid "Number of download: %s" +msgstr "" + +msgid "An error occured when retrieving the version of the plugin on Wordpress.org. Please retry!" +msgstr "" + +msgid "Update of the core ..." +msgstr "" + +msgid "1) Update with the core of the %s plugin" +msgstr "" + +msgid "1) The core of the plugin is up-to-date" +msgstr "" + +msgid "2) Modify the version (but the files of plugin are unchanged)" +msgstr "" + +msgid "2) Modify the version (the files of the plugin have been changed)" +msgstr "" + +msgid "2) Modify the readme.txt (as the version has been already changed)" +msgstr "" + +msgid "3) Update the SVN repository (without modifying the version)" +msgstr "" + +msgid "3) Update the SVN repository (and release a new version %s)" +msgstr "" + +msgid "Refresh" +msgstr "" + +msgid "Change the plugin version for %s" +msgstr "" + +msgid "Version number" +msgstr "" + +msgid "The current version of the plugin %s is %s." +msgstr "" + +msgid "Please modify the version:" +msgstr "" + +msgid "Readme file" +msgstr "" + +msgid "The current content of %s is:" +msgstr "" + +msgid "The current text" +msgstr "" + +msgid "The proposed text" +msgstr "" + +msgid "Save these data" +msgstr "" + +msgid "There is a problem with the header of %s. It appears that there is no Version header." +msgstr "" + +msgid "The data has been saved. You may close this window." +msgstr "" + +msgid "The folder %s is not %s !" +msgstr "" + +msgid "The file %s is not %s !" +msgstr "" + +msgid "The folder %s does not exists and cannot be created !" +msgstr "" + +msgid "The file %s does not exists and cannot be created !" +msgstr "" + +msgid "There are some issues with folders rights. Please corret them as soon as possible as they could induce bugs and instabilities." +msgstr "" + +msgid "Please see below:" +msgstr "" + +msgid "Plugins that you may install" +msgstr "" + +msgid "The following plugins have been developed by the author and are not yet installed:" +msgstr "" + +msgid "Plugin not yet installed" +msgstr "" + +msgid "Description and Screenshots" +msgstr "" + +msgid "All author's plugins have been installed. Thank you!" +msgstr "" + +msgid "Installed plugins" +msgstr "" + +msgid "You have already installed the following author's plugins:" +msgstr "" + +msgid "Plugin already installed" +msgstr "" + +msgid "Number of download:" +msgstr "" + +msgid "Your credentials do not seem to be correct. Please check them!" +msgstr "" + +msgid "This file have not been written in the repository due to server problem. Nevertheless, you should retry as it often works better with a second try !" +msgstr "" + +msgid "SVN client for %s" +msgstr "" + +msgid "Updating the local cache" +msgstr "" + +msgid "folder created" +msgstr "" + +msgid "folder creation has failed !" +msgstr "" + +msgid "%s bytes transfered" +msgstr "" + +msgid "An error occurred during the retrieval of files on the server ! Sorry ..." +msgstr "" + +msgid "Local to SVN repository" +msgstr "" + +msgid "Comparing %s with %s" +msgstr "" + +msgid "Confirmation" +msgstr "" + +msgid "Commit comment:" +msgstr "" + +msgid "Yes, the SVN version will be deleted and be replaced by the local version" +msgstr "" + +msgid "SVN repository to Local" +msgstr "" + +msgid "Yes, the local version will be overwritten with the repository files" +msgstr "" + +msgid "Sending to the repository in progress..." +msgstr "" + +msgid "The commit has ended [ %s ]... You should received an email quickly ! You may close the window or wait for the automatic closing." +msgstr "" + +msgid "The commit has ended but there is an error!" +msgstr "" + +msgid "Sending to the local files in progress..." +msgstr "" + +msgid "The rollback has ended ..." +msgstr "" + +msgid "Error: the submitted value is not an integer and thus, the parameter has not been updated!" +msgstr "" + +msgid "Error: the submitted string does not match the constrains" +msgstr "" + +msgid "Error: the submitted file can not be uploaded!" +msgstr "" + +msgid "Error: security issue!" +msgstr "" + +msgid "Parameters" +msgstr "" + +msgid "Here are the parameters of the plugin. Modify them at will to fit your needs." +msgstr "" + +msgid "Here are the parameters of the framework. Modify them at will to fit your needs." +msgstr "" + +msgid "Values" +msgstr "" + +msgid "Warning: some characters have been removed because they are not allowed here" +msgstr "" + +msgid "(integer)" +msgstr "" + +msgid "(If you want to delete this file, please check this box %s)" +msgstr "" + +msgid "Update" +msgstr "" + +msgid "Some parameters have not been updated due to errors (see below)!" +msgstr "" + +msgid "Parameters have been updated (but with some warnings)!" +msgstr "" + +msgid "Parameters have been updated successfully!" +msgstr "" + +msgid "KB" +msgstr "KB" + +msgid "MB" +msgstr "MB" + +msgid "GB" +msgstr "GB" + +msgid "Feedback form" +msgstr "" + +msgid "This form is an easy way to contact the author and to discuss issues/incompatibilities/etc. with him" +msgstr "" + +msgid "Contact the author" +msgstr "" + +msgid "Your name:" +msgstr "" + +msgid "Your email:" +msgstr "" + +msgid "Useful... so that the author will be able to anwser you." +msgstr "" + +msgid "Your comments:" +msgstr "" + +msgid "Please note that additional information on your wordpress installation will be sent to the author in order to help the debugging if needed (such as : the wordpress version, the installed plugins, etc.)" +msgstr "" + +msgid "Send feedback" +msgstr "" + +msgid "No email have been provided for the author of this plugin. Therefore, the feedback is impossible" +msgstr "" + +msgid "The feedback has been sent" +msgstr "" + +msgid "An error occured sending the email." +msgstr "" + +msgid "Make sure that your wordpress is able to send email." +msgstr "" + +msgid "Here, you may configure three levels of translations: at the plugin level, at the framework level, and at the dashboard level." +msgstr "" + +msgid "Please be informed that your current language is %s. Text will be translated if a translation is available." +msgstr "" + +msgid "Translations available for this plugin (i.e. %s)" +msgstr "" + +msgid "Translations available for the SL framework (stored in %s)" +msgstr "" + +msgid "Translations installed for Wordpress" +msgstr "" + +msgid "Adding a new translation for this language: %s" +msgstr "" + +msgid "Sentence to translate" +msgstr "" + +msgid "Translation" +msgstr "" + +msgid "(if your name/pseudo is already in the list, there is no need to fill this input)" +msgstr "" + +msgid "Your email or your website:" +msgstr "" + +msgid "Create the translation files" +msgstr "" + +msgid "Modifying the translation for this language: %s" +msgstr "" + +msgid "Modify the translation files" +msgstr "" + +msgid "The file %s cannot be extracted from mail attachments" +msgstr "" + +msgid "The file %s cannot be written in the %s folder" +msgstr "" + +msgid "The file %s has been imported in the %s folder" +msgstr "" + +msgid "Plugin" +msgstr "" + +msgid "Language" +msgstr "ภาษา" + +msgid "Information" +msgstr "" + +msgid "%s sentences have been translated (i.e. %s)." +msgstr "" + +msgid "Delete" +msgstr "" + +msgid "Import" +msgstr "" + +msgid "%s sentences have been newly translated and %s sentences have been modified (the old file has %s translated sentences)." +msgstr "" + +msgid "See modifications and Merge" +msgstr "" + +msgid "Merge" +msgstr "" + +msgid "New translations are available" +msgstr "" + +msgid "Updates of translations are available" +msgstr "" + +msgid "What are the differences between these two files?" +msgstr "" + +msgid "Old sentence" +msgstr "" + +msgid "New sentence" +msgstr "" + +msgid "To replace?" +msgstr "" + +msgid "%s sentences have been translated (i.e. %s) %s %s sentences have to be checked because they are close (but not identical) to those to translate.%s" +msgstr "" + +msgid "The translation %s have been sent" +msgstr "" + +msgid "%s file has been updated for %s" +msgstr "" + +msgid "%s file has been updated from this file" +msgstr "" + +msgid "%s file has been created with a new translation for %s" +msgstr "" + +msgid "%s file has been created from this file" +msgstr "" + +msgid "If you do not want to loose your translations on the next upgrading of this plugin, it is recommended to send the translation files to the author by clicking %s here %s !" +msgstr "" + +msgid "If you do not want to loose your translations on the next upgrading of this plugin, please save them on your hard disk before upgrading and then restore them after the upgrade !" +msgstr "" + +msgid "The following languages may be used by your Wordpress installation." +msgstr "" + +msgid "There is a need to update the list of available translation at the Wordpress repository because no information are available for the version of Wordpress (i.e. %s)." +msgstr "" + +msgid "Update the list of translations" +msgstr "" + +msgid "This is the default language of the plugin. It cannot be modified." +msgstr "" + +msgid "Re-download" +msgstr "" + +msgid "Last update: %s" +msgstr "" + +msgid "Download a new translation" +msgstr "" + +msgid "You may download a new translation from Wordpress.org" +msgstr "" + +msgid "Download" +msgstr "ดาวน์โหลด" + +msgid "Change the default language used" +msgstr "" + +msgid "If you want to modify the default language of the dashboad, and thus of the plugin, please select your language here:" +msgstr "" + +msgid "Set the language" +msgstr "" + +msgid "The file %s has been downloaded (version %s)" +msgstr "" + +msgid "The file %s cannot be stored in %s. Check permissions." +msgstr "" + +msgid "The translations files do not exists ... it is strange!" +msgstr "" + +msgid "The sentences used in this plugin are in English. Help the others users using the same language as you by translating this plugin." +msgstr "" + +msgid "This plugin is available in %d languages." +msgstr "" + +msgid "There are %d sentences to be translated in this plugin." +msgstr "" + +msgid "Ratio %" +msgstr "" + +msgid "Translators" +msgstr "" + +msgid "Modify" +msgstr "" + +msgid "Send to the author of the plugin" +msgstr "" + +msgid "Add a new translation" +msgstr "" + +msgid "You may add a new translation hereafter (Please note that it is recommended to send your translation to the author so that he would be able to add your translation to the future release of the plugin !)" +msgstr "" + +msgid "Add" +msgstr "" + +msgid "The 'SL framework' is a framework used for developping many plugins like this one. Thus, if you participate translating the framework, it will be very helpful for a bunch of plugins." +msgstr "" + +msgid "There is %d languages supported for the 'SL framework'." +msgstr "" + +msgid "There is %d sentence to be translated in the framework." +msgstr "" + +msgid "This is the default language of the plugin framework. It cannot be modified." +msgstr "" + +msgid "Send to the author of the framework" +msgstr "" + +msgid "Select all" +msgstr "" + +msgid "Un-select all" +msgstr "" + +msgid "Sorry, but only %s files can be diff at once, in order to avoid any memory saturation" +msgstr "" + +msgid "Error: %s function is not found" +msgstr "" + +msgid "The file %s cannot be read. You should have a problem with file permissions or security restrictions." +msgstr "" + +msgid "The file %s cannot be deleted. You should have a problem with file permissions or security restrictions." +msgstr "" + +msgid "The folder %s cannot be opened. You should have a problem with folder permissions or security restrictions." +msgstr "" + +msgid "An other process is still running (it runs for %s seconds)" +msgstr "" + +msgid "The file %s cannot be modified/created. You should have a problem with file permissions or security restrictions." +msgstr "" + +msgid "The file %s cannot be created. You should have a problem with file permissions or security restrictions." +msgstr "" + +msgid "The file %s cannot be compressed." +msgstr "" + +msgid "The file %s cannot be renamed. You should have a problem with file permissions or security restrictions." +msgstr "" + +msgid "The file %s cannot be modified. You should have a problem with file permissions or security restrictions." +msgstr "" + +msgid "Close popup" +msgstr "" + +msgid "Saved on %s" +msgstr "" + +msgid "No cache file found... Regenerating one!" +msgstr "" + +msgid "PHP Doc for the SL Framework" +msgstr "" + +msgid "Here are the classes of the SL framework:" +msgstr "" + +msgid "Here is the method of the class:" +msgstr "" + +msgid "Methods" +msgstr "" + +msgid "Details" +msgstr "" + +msgid "[METHOD]" +msgstr "" + +msgid "Parameters:" +msgstr "" + +msgid "[optional]" +msgstr "" + +msgid "(by default, its value is:" +msgstr "" + +msgid "No param" +msgstr "" + +msgid "Return value:" +msgstr "" + +msgid "Typical call:" +msgstr "" + +msgid "See also:" +msgstr "" + +msgid "[CLASS]" +msgstr "" + diff --git a/core/lang/SL_framework-tr_TR.mo b/core/lang/SL_framework-tr_TR.mo new file mode 100644 index 0000000000000000000000000000000000000000..6338822e0b5b986e0826c89767a5200b893adca4 GIT binary patch literal 4503 zcmb7`U5H#)9l#H^@vGI=wKaYfPfU|ExLrSzv^qIrrT0 ze(ZKu5ULNpl`4o&b_IpR7t6kcLKhWgm-a=mK8a$$hl2G{{3?R@`=5Jfb~X(~Lw0_1 z&pqe={XhS?IdkXt75^6a`#66OzC)grn!Qu0cTe#I&-d~CMfez8h8F%1o`iSoQ>qOY zpoTwzcfp;8ufZcc{}Fxw?t5qbem|Vy`5^old;}hZm*Gd?D%=mBhbQ25cnscz--I*o zs^xtbioPGi55pJX{qWUh{U&@b&wqgj;NRiBa6eAo4IhF>;R*OC{2JuH`T-woRX>7a z=XEH0UWS;UUV(SOU&9Z<-$K#zM)Uq}Q0)0P6g~I7r+$9`zK`cw_zBo**1rnbsw|ZK z0g9e)K-vE-D0Vy#qrdR;JiiFv5C05h-#?-Fu@7TD3Qs~w?N=H;)$nO3`VBk-pM@g- z6)5t455a>UQko^MJJjWh)n#r%;Z5nX zQ0S~1*9N}oxlpv!WAf}+AIN*nw<>g2Y^QIN*;`NR(zNwj7LJsJ!eYl)2|=4)ysdDXT(Hj^DW+6BL7X~SZX00|2cLCJ zi3U?5Pc6lO>3~h@v@JThivd#{Z@WG@ zkz}?$W1qn|{0oWhm>^O}ekZpvID4i2A7==f;jhS2iC$5mEGEA;xzM@mt(3)_Uh-DL zNp5mWt*_Wrn}TE1DjZ}*;o7*ucis)zS9vMOr0Q7RuIL4^JC;k^c~?4H%#q6|v#@NT z^441Fl+REy$OhFweR+k96EEaZn#j;z3baK_hSCP)(q7}9vg(Q5?owB?ib^GItr+C- zCTT1pA1k+QZP11EFyfMl9JZ)aS?Ibvjg7?6_-;r(6>DjoTLG6nqsowW0x`C#|7kYv=)0&t;`Pds42HEcp5& zqv=Z5Ff@m#Zh0IG3gqi%FZR zT*>k}aW*B!Ep?@^-O6(ZQ)R@1VvwNJ8>vz6rT$|oe$=ruCMu96i*CVGkK6XG_Q_FDK1D1V~x(M6LD$P=55+%UVX{*``eq?F9U30XmW4z zsrhwvbR*c(rA{q)E)i18dqbCM+xNtbxe=HuUXQNXRhKjLg407YFm$fm66?Ho8f~fV zQ*vZpr*YGIOD$GZBj*CIOuuwpT6cTH`NGbQ#mV$KeDE{JzA(SN8MW(SV~{S)uxpBF zy6%l`h-gtcv>n@LcumbBE%#>6dbhJtVj^Zw8$Y_S&LuULrgmO%Y2s$}a-27{?x~@3 z8(E}~>BeUh5sx7fmEmZM5HZ`_x*C1Q_FbOfXtPQ7CvIIfCbr%>+EQogm@<&JH`T)E z+V*DOo7708#^>DV8nR_<5mYCGD@bT6Uxkz)%E`PQT*Ez+>%19mZ)p!0I?OCaH*)>Zq2j2x);y24nv^oZ*p+0(&`kEk zCla`4%N{||EBwbN3GvYKBgN^=S0u8^D+!Ifx>ff7eC&K%60@bTZmnxBMEU3h1w$4YR$m zy-5_>M%u2WmSleE^K?u}FCtm;L=;j(bF8`{Noh&>#F%$RTd9{cH4AD1|H(hiG~Pn+ z=?035LQf_e^|^XYT?%G+Ye~gY~U1-mO*ETwgCs3aZJViuI^? z&A`OwNz1G=Gn$^Gk(Qa>lRYxpFGa7%Q>V{W;J90I(~TEM&>8Oo!DM_DILHr%z6`E@ z%r^Gdb1S!F3H99Cd7(0)@AR_VMQSnTc4tGKBa{R$p-s{_zAAOqted>9ue@|^Npz1^ zRA(Mu%DBc`oS`vu?_`F>&9nU0Dk%kB)a9w&^g-Js=PJ=j$MK~M_NZv35%&GGio0%mkl>p#V=ogL)rm8ETZbW9*UOmz&*f#qXZPLvZvqq|n&>lZo Y*NMg{nvdwom@-4D8baV{v3i60FUy`)6aWAK literal 0 HcmV?d00001 diff --git a/core/lang/SL_framework-tr_TR.po b/core/lang/SL_framework-tr_TR.po new file mode 100644 index 0000000..900cdd1 --- /dev/null +++ b/core/lang/SL_framework-tr_TR.po @@ -0,0 +1,217 @@ +msgid "" +msgstr "" +"Generated: SL Framework (http://www.sedlex.fr)\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2013-08-05T19:18:04+00:00\n" +"Last-Translator: GeneticAjans \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Poedit-Language: Turkish\n" +"X-Poedit-Country: Turkey\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-KeywordsList: __;\n" +"X-Poedit-Basepath: \n" +"X-Poedit-Bookmarks: \n" +"X-Poedit-SearchPath-0: .\n" +"X-Textdomain-Support: yes\n" + +msgid "About..." +msgstr "Hakkında..." + +msgid "Settings" +msgstr "Ayarlar" + +msgid "Log options" +msgstr "Kayıt Seçenekleri" + +msgid "What is the debug level:" +msgstr "Hata ayıklama seviyesi:" + +msgid "See the debug logs" +msgstr "Hata kayıtlarını göster" + +msgid "1=log only the critical errors;" +msgstr "1=sadece kritik hatalar;" + +msgid "2=log only the critical errors and the standard errors;" +msgstr "2=sadece kritik ve standart hatalar;" + +msgid "3=log only the critical errors, the standard errors and the warnings;" +msgstr "3=sadece kritik hatalar, standart hatalar ve uyarılar;" + +msgid "4=log information;" +msgstr "4=kayıt bilgileri;" + +msgid "5=log verbose;" +msgstr "5=ayrıntılı kayıt" + +msgid "Multisite Management" +msgstr "Multisite Yönetimi" + +msgid "Do you want to allow sub-blogs to modify the translations of the plugins:" +msgstr "Alt bloglara bu eklentinin dil çevirisini yapabilme iznini vermek ister misiniz:" + +msgid "If this option is unchecked, the translation tab won't be displayed in the blog administration panel." +msgstr "Bu seçenek aktif değilse, çeviri tab'ı blog yönetim sayfasında gösterilmeyecek." + +msgid "Summary page for the plugins developped with the SL framework" +msgstr "SL framework ile geliştirilen eklentinin özet sayfası" + +msgid "For now, you have installed %s plugins including %s plugins developped with the SedLex's framework" +msgstr "Şimdi, SedLex's framework ile geliştirilen %s ve %s eklentilerinin yüklediniz" + +msgid "The core plugin is located at %s" +msgstr "Çekirdek eklenti %s dizininde yüklü" + +msgid "Plugin name" +msgstr "Eklenti adı" + +msgid "Description" +msgstr "Açıklama" + +msgid "There is a SQL database for this plugin" +msgstr "Bu eklenti için SQL veritabanı bulunmaktadır" + +msgid "Version: %s by %s" +msgstr "Versiyon: %s by %s" + +msgid "List of SL plugins" +msgstr "SL Eklenti Listesi" + +msgid "Parameters of the framework" +msgstr "Framework parametreleri" + +msgid "Manage translation of the framework" +msgstr "Framework Çeviri Yönetimi" + +msgid "The folder %s is not %s !" +msgstr "Bu klasör (%s) %s klasörü değil !" + +msgid "The file %s is not %s !" +msgstr "Bu dosya (%s) %s dosyası değil !" + +msgid "The folder %s does not exists and cannot be created !" +msgstr "Bu klasör (%s) bulunamadı ve yenisi oluşturulamadı !" + +msgid "The file %s does not exists and cannot be created !" +msgstr "Bu dosya (%s) bulunamadı ve yenisi oluşturulamadı !" + +msgid "There are some issues with folders rights. Please corret them as soon as possible as they could induce bugs and instabilities." +msgstr "Klasör izinleri ile ilgili bazı sorun var. Sistemde hata oluşmaması için bunu en kısa zamanda düzeltiniz." + +msgid "Please see below:" +msgstr "Aşağıya bakın:" + +msgid "Close popup" +msgstr "Popup Kapat" + +msgid "Sentence to translate" +msgstr "Çeviri cümlesi" + +msgid "Translation" +msgstr "Çeviri" + +msgid "Your name:" +msgstr "Adınız:" + +msgid "The translation %s have been sent" +msgstr "Çeviri %s gönderildi" + +msgid "Send translation" +msgstr "Çeviri Gönder" + +msgid "Confirmation" +msgstr "Onaylama" + +msgid "This plugin is available in %s languages." +msgstr "Bu eklenti %s dillerinde kullanılabilir." + +msgid "There are %s sentences to be translated in this plugin." +msgstr "Bu eklentide %s adet cümle bulunmaktadır." + +msgid "Language" +msgstr "Dil" + +msgid "Ratio %" +msgstr "Oran %" + +msgid "Translators" +msgstr "Çeviri Ekibi" + +msgid "Modify" +msgstr "Düzenle" + +msgid "Add" +msgstr "Ekle" + +msgid "Error: security issue!" +msgstr "Hata: Güvenlik Sorunu!" + +msgid "Parameters" +msgstr "Parametreler" + +msgid "Update" +msgstr "Güncelle" + +msgid "Plugin already installed" +msgstr "Eklenti zaten yüklü" + +msgid "Last update:" +msgstr "Son Güncelleme:" + +msgid "Rating: %s" +msgstr "Oylama: %s" + +msgid "by %s persons" +msgstr "%s kişi tarafından oylandı" + +msgid "Filter: %s" +msgstr "Filtre: %s" + +msgid "%s of %s" +msgstr "%s of %s" + +msgid "Current Page" +msgstr "Şuanki Sayfa" + +msgid "Donate" +msgstr "Bağış" + +msgid "Feedback form" +msgstr "Geribildirim formu" + +msgid "Contact the author" +msgstr "Yazar ile irtibata geç" + +msgid "Your email:" +msgstr "E-Posta:" + +msgid "Useful... so that the author will be able to anwser you." +msgstr "Geçerli... Yazar, artık sizinle irtibata geçebilir." + +msgid "Your comments:" +msgstr "Yorumlarınız:" + +msgid "Send feedback" +msgstr "Geribildirim gönder" + +msgid "The feedback has been sent" +msgstr "Geribildirim gönderildi." + +msgid "KB" +msgstr "KM" + +msgid "MB" +msgstr "MB" + +msgid "GB" +msgstr "GB" + +msgid "Error: %s function is not found" +msgstr "Hata: %s fonksiyonu bulunamadı" + diff --git a/core/lang/SL_framework-uk_UA.mo b/core/lang/SL_framework-uk_UA.mo new file mode 100644 index 0000000000000000000000000000000000000000..b9a2795b621427d44ffabca4b0f47b5b6c9c2d84 GIT binary patch literal 3047 zcmbuATWl0n7=VugBHn^1sEOiHAtIrha1oMLOehdTqzN}e)CZmIPTLLJnL0Du%7d}A zltR)-R4DO6F`8)NgXv{~rR^>;K4^S8!vk;n;43eh_+U&({Qfi3vP(DcAYtb_bIyPN z|1w={ir!yvCAm3)<$M*~2Dif9(1Vg^2})i+ zL-BJx-Tw_X@%|_L5U%F%DL4it?lRm7e}t0P5|WT!tb$_qRroO652Y^ez-M3|Tno=a z@jC-|!(ZWBa5=`s&k?u|4nfKD2PpNq2KldU@DM+L!{_1BW%!2cp#yh7k^cr};4GB7 z-+)`-Kaf(XCYmhVlyV!C^H<=0_#S*0{siBLYiQ1Tcpk2XzrY?Lodr1l6G~H*j@6)Qf3MCt zk&|^oS9kaU2G~z55Q*nRuG;B)k<(5v_;ZR;mmjD%{bFG4HYZEB+sPNwb-Uj!dEkGq z->H4;GE{rKFd`K7v!i>2=v+r2Fzwmk#}Ims$m$6!fL%)XsuWCOv*nu}AI5sg-1(bF;-xU2uC{l0B4`-VZ`5ip0E7l1Cx6RNt12 z-V^C|$MgJ%l#*8F-CRbs*`}t^`8CC^*O#R3Ak-m6>+^#n>h)ID)~a4>MVK+U6+APf zHg0E>wC@#?A!0D1e7jT7ZV-@7i`sO@bL~h0u}DX~oD<~c^)}y8Z$l%cd1G@uY*AaR zmAuC|CQWHkFWaqNH^|c67G*BP{iX`cIE!&JYc9qEtjfxK%mmJ)y$YO`)pl}M@^~8Ot4eML3x9Y zPqCWNIIp5mj*lZTotRHm#Gko{-x)lXuwfTd$W{1FHY;kYj7}DkVm@+3w zqY@9sXY5@i0MS6cWV0y8L$aKSPwV(ZJYr+3E--e1{Yy6c0dc0xIWzf3|7Y=OF(tvq z$1q?nYiv&PUM23TnN{W!j!#k+!kx7W>6T6}d?FyFMVwSCDASS#ozY3*ByVis4?(&h zt(mckqjgbBE637v+W}Fc1GQVCa9jV$L2ARpwq-INuI;yEv|wbknLvgOry@a;0Tv%E((6EktTJ7}N z%Uk;~NR=22+BS;85z5Y#%nuBms4zNQXBn|s+9F??Y55r6&Ej2+aDN;1upFO@hg#I; z|L=gW;ldHI=Eb$mXl{\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%100/10==1 ? 2 : n%10==1 ? 0 : (n+9)%10>3 ? 2 : 1;\n" +"X-Poedit-Language: Ukrainian\n" +"X-Poedit-Country: Ukraine\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-KeywordsList: __;\n" +"X-Poedit-Basepath: \n" +"X-Poedit-Bookmarks: \n" +"X-Poedit-SearchPath-0: .\n" +"X-Textdomain-Support: yes\n" + +msgid "About..." +msgstr "Про" + +msgid "Settings" +msgstr "Параметри" + +msgid "Log options" +msgstr "Параметри логів" + +msgid "What is the debug level:" +msgstr "Рівень відладчика:" + +msgid "See the debug logs" +msgstr "Переглянути звіт відладчика" + +msgid "1=log only the critical errors;" +msgstr "1=записувати звіти тільки критичних помилок;" + +msgid "2=log only the critical errors and the standard errors;" +msgstr "2=записувати звіти критичних помилок і стандартниїх;" + +msgid "3=log only the critical errors, the standard errors and the warnings;" +msgstr "3=записувати звіти критичних помилок, стандартниїх і попереджень;" + +msgid "4=log information;" +msgstr "4=звітувати інформацію;" + +msgid "5=log verbose;" +msgstr "5=детальний звіт;" + +msgid "Multisite Management" +msgstr "Багатосайтове керування" + +msgid "Do you want to allow sub-blogs to modify the translations of the plugins:" +msgstr "Чи хочете ви дозволити під-блоги, щоб модифікувати переклад плагінів:" + +msgid "Plugin name" +msgstr "Назва плагіну" + +msgid "Description" +msgstr "Опис" + +msgid "There is a SQL database for this plugin" +msgstr "Існує SQL база даних для цього плагіну" + +msgid "Donate" +msgstr "Пожертва" + +msgid "Contact the author" +msgstr "Зв’язатися з автором" + +msgid "Your name:" +msgstr "Ваше ім’я" + +msgid "Your email:" +msgstr "Ваш email:" + +msgid "Your comments:" +msgstr "Ваш коментар" + +msgid "Installed plugins" +msgstr "Встановлені плагіни" + +msgid "Update" +msgstr "Оновити" + +msgid "Reset to default values" +msgstr "Відновити параметри за замовчуванням" + +msgid "Parameters have been updated (but with some warnings)!" +msgstr "Параметри були обновлені (але були попередження)!" + +msgid "Close popup" +msgstr "Закрити вікно" + +msgid "Add a new translation" +msgstr "Додати новий переклад" + +msgid "Send translation" +msgstr "Надіслати переклад" + +msgid "Confirmation" +msgstr "Налаштування" + +msgid "Language" +msgstr "Мова" + +msgid "Ratio %" +msgstr "Відсоток %" + +msgid "Translators" +msgstr "Перекладачі" + +msgid "This is the default language of the plugin. It cannot be modified." +msgstr "Це стандартна мова плагіну. ЇЇ не можна модифікувати." + +msgid "Modify" +msgstr "Модифікувати" + +msgid "Send to the author of the plugin" +msgstr "Надіслати автору плагіну" + +msgid "Add" +msgstr "Додати" + +msgid "Send to the author of the framework" +msgstr "Надіслати автору фреймворку" + +msgid "KB" +msgstr "Кб" + +msgid "MB" +msgstr "Мб" + +msgid "GB" +msgstr "Гб" + diff --git a/core/lang/SL_framework-vi_VN.mo b/core/lang/SL_framework-vi_VN.mo new file mode 100644 index 0000000000000000000000000000000000000000..4e75943f23afe2aa6a2f23ab113e7fd1ebab3716 GIT binary patch literal 224 zcmca7#4?ou2v~qv28eAy93Y4RVh$+H4Wv_n7(^EWF&_}u05Us|H4r^n!vpRSN!P?DLSSIpq)>lmN_6v)i8g0KS;i;K(ii&Cr@+%q5U zo}H;sk^!XKOBFymk4!kyoR_YUm+^4d+5&}=!#gV#k~1Fe?#+YfMUjS@=L=L?qL2;L Jv9i>P0RY7fJTw3R literal 0 HcmV?d00001 diff --git a/core/lang/SL_framework-vi_VN.po b/core/lang/SL_framework-vi_VN.po new file mode 100644 index 0000000..c4b28dd --- /dev/null +++ b/core/lang/SL_framework-vi_VN.po @@ -0,0 +1,34 @@ +msgid "" +msgstr "" +"Generated: SL Framework (http://www.sedlex.fr)\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2012-10-29T19:50:48+00:00\n" +"Last-Translator: lan \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +" +" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-KeywordsList: __;\n" +"X-Poedit-Basepath: \n" +"X-Poedit-Bookmarks: \n" +"X-Poedit-SearchPath-0: .\n" +"X-Textdomain-Support: yes\n" + +msgid "About..." +msgstr "Giới thiệu ..." + +msgid "Log options" +msgstr "Đăng nhập tùy chọn" + +msgid "IMAP Login:" +msgstr "IMAP Đăng nhập:" + +msgid "IMAP Password:" +msgstr "IMAP Mật khẩu:" + diff --git a/core/lang/SL_framework-zh_CN.mo b/core/lang/SL_framework-zh_CN.mo new file mode 100644 index 0000000000000000000000000000000000000000..49c2f8200a9bf089cf80b64a0a0b3e6681f45f05 GIT binary patch literal 14622 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\n" +"Last-Translator: OWenT \n" +"Last-Translator: peteryeung \n" +"Last-Translator: jflycn \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Poedit-Language: Chinese\n" +"X-Poedit-Country: People's Republic of China\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-KeywordsList: __;\n" +"X-Poedit-Basepath: \n" +"X-Poedit-Bookmarks: \n" +"X-Poedit-SearchPath-0: .\n" +"X-Textdomain-Support: yes\n" + +msgid "About..." +msgstr "关于..." + +msgid "Settings" +msgstr "设置" + +msgid "Log options" +msgstr "日志选项" + +msgid "What is the debug level:" +msgstr "什么是调试级别:" + +msgid "See the debug logs" +msgstr "请参阅调试日志" + +msgid "1=log only the critical errors;" +msgstr "1=记录只有严重的错误;" + +msgid "2=log only the critical errors and the standard errors;" +msgstr "2=仅记录严重错误和标准错误;" + +msgid "3=log only the critical errors, the standard errors and the warnings;" +msgstr "3=仅记录严重错误,标准错误和警告;" + +msgid "4=log information;" +msgstr "4=记录信息;" + +msgid "5=log verbose;" +msgstr "5=日志详细;" + +msgid "Multisite Management" +msgstr "多站点管理" + +msgid "Do you want to allow sub-blogs to modify the translations of the plugins:" +msgstr "你是否允许子博客修改插件的翻译:" + +msgid "If this option is unchecked, the translation tab won't be displayed in the blog administration panel." +msgstr "如果未选中此选项,翻译选项卡不会显示在博客的管理面板。" + +msgid "Summary page for the plugins developped with the SL framework" +msgstr "摘要页:基于 SL 框架开发的插件" + +msgid "Plugin name" +msgstr "插件名" + +msgid "Description" +msgstr "描述" + +msgid "There is a SQL database for this plugin" +msgstr "这个插件有一个SQL数据库" + +msgid "Version: %s by %s" +msgstr "版本:%s 的 %s" + +msgid "For now, you have installed %s plugins including %s plugins developped with the SedLex's framework" +msgstr "目前你安装了 %s 个插件,其中 %s 个基于 SL 框架开发" + +msgid "The core plugin is located at %s" +msgstr "核心插件位于 %s" + +msgid "List of SL plugins" +msgstr "SL 插件清单" + +msgid "Parameters of the framework" +msgstr "框架的参数" + +msgid "Manage translation of the framework" +msgstr "管理框架的翻译" + +msgid "The folder %s is not %s !" +msgstr "文件夹 %s 不是 %s !" + +msgid "The file %s is not %s !" +msgstr "文件 %s 不是 %s !" + +msgid "The folder %s does not exists and cannot be created !" +msgstr "文件夹 %s 不存在且不能被创建" + +msgid "The file %s does not exists and cannot be created !" +msgstr "文件 %s 不存在且不能被创建" + +msgid "There are some issues with folders rights. Please corret them as soon as possible as they could induce bugs and instabilities." +msgstr "文件夹的权限有一些问题。请尽快纠正,因为它们可能引起错误和不稳定性。" + +msgid "Please see below:" +msgstr "请参见下文:" + +msgid "Close popup" +msgstr "关闭弹出窗口" + +msgid "Here, you may configure three levels of translations: at the plugin level, at the framework level, and at the dashboard level." +msgstr "在这里,你可以配置三个层次的翻译:插件,框架,或是仪表板。" + +msgid "Please be informed that your current language is %s. Text will be translated if a translation is available." +msgstr "您的当前语言是%s。如果翻译文本存在,插件将被翻译。" + +msgid "If you want to modify the language, please go in %s and find %s or %s. The second argument is your language and you may modify it as you want." +msgstr "如果你想修改语言,请到%s并寻找%s或是%s。第二个参数是你的语言,你可以修改它。" + +msgid "Translations available for this plugin (i.e. %s)" +msgstr "这个插件有可用翻译 (%s)" + +msgid "Translations available for the SL framework (stored in %s)" +msgstr "SL框架有可用翻译 (位于 %s)" + +msgid "Adding a new translation for this language: %s" +msgstr "添加这种语言的翻译:%s" + +msgid "Sentence to translate" +msgstr "要翻译的句子" + +msgid "Translation" +msgstr "翻译" + +msgid "Your name:" +msgstr "您的名字:" + +msgid "(if your name/pseudo is already in the list, there is no need to fill this input)" +msgstr "(如果你的名字/伪已经在列表中,无需填写此项)" + +msgid "Your email or your website:" +msgstr "您的电子邮件或网站:" + +msgid "Create the translation files" +msgstr "创建翻译文件" + +msgid "Add a new translation" +msgstr "添加一个新的翻译" + +msgid "Modifying the translation for this language: %s" +msgstr "修改此语言的翻译档:%s" + +msgid "Confirmation" +msgstr "配置" + +msgid "Summary cached %s" +msgstr "总缓存 %s" + +msgid "This plugin is available in %s languages." +msgstr "这项插件的语言 %s 可用" + +msgid "Language" +msgstr "语言" + +msgid "Ratio %" +msgstr "完成度:" + +msgid "Translators" +msgstr "译:" + +msgid "This is the default language of the plugin. It cannot be modified." +msgstr "这是插件的默认语言,不可更改" + +msgid "Modify" +msgstr "修改" + +msgid "Add" +msgstr "添加" + +msgid "Add new" +msgstr "添加新项" + +msgid "Update" +msgstr "更新" + +msgid "Reset to default values" +msgstr "重置" + +msgid "Last update:" +msgstr "最后更新" + +msgid "Rating: %s" +msgstr "完成度: %s" + +msgid "Filter: %s" +msgstr "过滤规则: %s" + +msgid "Current Page" +msgstr "当前页" + +msgid "Donate" +msgstr "捐赠" + +msgid "Contact the author" +msgstr "联系作者" + +msgid "Your email:" +msgstr "您的 E-Mail" + +msgid "Useful... so that the author will be able to anwser you." +msgstr "重要! 作者可能会联系您" + +msgid "Your comments:" +msgstr "您的评论:" + +msgid "Send feedback" +msgstr "发送反馈" + +msgid "The feedback has been sent" +msgstr "反馈已发送" + +msgid "KB" +msgstr "KB" + +msgid "MB" +msgstr "MB" + +msgid "GB" +msgstr "GB" + +msgid "Error: %s function is not found" +msgstr "错误: 函数 %s 没找到" + +msgid "The file %s cannot be read. You should have a problem with file permissions or security restrictions." +msgstr "无法读取 %s 文件, 可能是权限不足或被安全策略禁止" + +msgid "The folder %s cannot be opened. You should have a problem with folder permissions or security restrictions." +msgstr "无法打开 %s 文件, 可能是权限不足或被安全策略禁止" + +msgid "The file %s cannot be deleted. You should have a problem with file permissions or security restrictions." +msgstr "无法删除 %s 文件, 可能是权限不足或被安全策略禁止" + +msgid "An other process is still running (it runs for %s seconds)" +msgstr "另一个进程仍运行(已经运行了 %s 秒)" + +msgid "The file %s cannot be modified/created. You should have a problem with file permissions or security restrictions." +msgstr "无法修改或创建 %s 文件, 可能是权限不足或被安全策略禁止" + +msgid "The file %s cannot be created. You should have a problem with file permissions or security restrictions." +msgstr "无法创建 %s 文件, 可能是权限不足或被安全策略禁止" + +msgid "The file %s cannot be compressed." +msgstr "无法压缩 %s 文件" + +msgid "The file %s cannot be renamed. You should have a problem with file permissions or security restrictions." +msgstr "无法重命名 %s 文件, 可能是权限不足或被安全策略禁止" + +msgid "The file %s cannot be modified. You should have a problem with file permissions or security restrictions." +msgstr "无法修改 %s 文件, 可能是权限不足或被安全策略禁止" + +msgid "Send to the author of the plugin" +msgstr "发送给插件作者" + +msgid "Error: the submitted value is not an integer and thus, the parameter has not been updated!" +msgstr "错误: 要求提供整数配置" + +msgid "Error: the submitted string does not match the constrains" +msgstr "错误: 提交的内容不符合指定的格式" + +msgid "Error: the submitted file can not be uploaded!" +msgstr "错误: 文件无法提交" + +msgid "Error: security issue!" +msgstr "错误: 安全限制!" + +msgid "Parameters" +msgstr "参数" + +msgid "(Delete)" +msgstr "(删除)" + +msgid "Values" +msgstr "值" + +msgid "(integer)" +msgstr "(整数)" + +msgid "(If you want to delete this file, please check this box %s)" +msgstr "(勾选以删除这个文件 %s)" + +msgid "Some parameters have not been updated due to errors (see below)!" +msgstr "发生错误,一些配置未被更新(往下看)!" + +msgid "Parameters have been updated (but with some warnings)!" +msgstr "配置已更新(发现警告)!" + +msgid "Parameters have been updated successfully!" +msgstr "配置成功更新!" + +msgid "Parameters have been reset to their default values!" +msgstr "配置已还原成默认值" + +msgid "Plugin not yet installed" +msgstr "插件为安装" + +msgid "Description and Screenshots" +msgstr "描述和快照" + +msgid "All author's plugins have been installed. Thank you!" +msgstr "所有插件都已安装, 谢谢使用" + +msgid "Installed plugins" +msgstr "安装插件" + +msgid "You have already installed the following author's plugins:" +msgstr "您已经安装了下列作者的插件:" + +msgid "Plugin already installed" +msgstr "插件已安装" + +msgid "The Wordpress page: %s" +msgstr "Wordpress页: %s" + +msgid "An Unexpected HTTP Error occurred during the API request." +msgstr "在API请求时发生意外的HTTP错误" + +msgid "Number of download:" +msgstr "下载量" + +msgid "Feedback form" +msgstr "反馈" + +msgid "This form is an easy way to contact the author and to discuss issues/incompatibilities/etc. with him" +msgstr "此处是联系作者提供BUS、兼容性问题等的快速通道" + +msgid "Please note that additional information on your wordpress installation will be sent to the author in order to help the debugging if needed (such as : the wordpress version, the installed plugins, etc.)" +msgstr "注意: 在需要的时候,您的Wordpress的一些安装信息会被发送给作者, 以帮助作者进行调试(比如 Wordpress 版本, 已安装的插件, 等等)" + +msgid "No email have been provided for the author of this plugin. Therefore, the feedback is impossible" +msgstr "本插件的作者没有提供电子邮件地址,因此反馈不可用" + +msgid "The number of occurrence of %s does not match in both string. Please note that the string %s will be replaced with a contextual string." +msgstr "%s在这两个字符串中不匹配。请注意,上下文字符串将被替换的字符串%s。" + +msgid "Modify the translation files" +msgstr "修改翻译文件" + +msgid "Modify translations" +msgstr "修改翻译" + +msgid "%s sentences have been translated (i.e. %s)." +msgstr "%s 的条目已翻译(即 %s)." + +msgid "%s sentences have been translated (i.e. %s) %s %s sentences have to be checked because they are close (but not identical) to those to translate.%s" +msgstr "%s 的条目已翻译(即 %s), %s %s 的条目需要核对(相似但不完全相同).%s" + +msgid "The translation %s have been sent" +msgstr "国际化配置 %s 已发送" + +msgid "An error occured sending the email." +msgstr "发送电子邮件失败" + +msgid "Make sure that your wordpress is able to send email." +msgstr "请确保您的Wordpress可以发送电子邮件" + +msgid "Send translation" +msgstr "发送翻译结果" + +msgid "%s file cannot be created for %s as there is no translated sentence. Please, translate at least one sentence to create a file" +msgstr "由于未配置任何国际化翻译, 文件 %s 无法创建(%s), 请配置至少一条翻译" + +msgid "%s file has been updated for %s" +msgstr "文件 %s 已更新 (%s)" + +msgid "%s file has been updated from this file" +msgstr "文件 %s 已由此文件更新" + +msgid "%s file has been created with a new translation for %s" +msgstr "文件 %s 已创建, 并用于 %s 的新国际化配置" + +msgid "%s file has been created from this file" +msgstr "文件 %s 已由此文件创建" + +msgid "If you do not want to loose your translations on the next upgrading of this plugin, it is recommended to send the translation files to the author by clicking %s here %s !" +msgstr "如果您不想在下一次的插件更新时丢失当前的国际化配置, 建议您 %s 点击这里 %s 把当前翻译文件发送给作者." + +msgid "If you do not want to loose your translations on the next upgrading of this plugin, please save them on your hard disk before upgrading and then restore them after the upgrade !" +msgstr "如果您不想在下一次的插件更新时丢失当前的国际化配置, 请在更新插件前把当前配置保存到本地, 并在更新完成后恢复!" + +msgid "The sentences used in this plugin are in English. Help the others users using the same language as you by translating this plugin." +msgstr "这个是个英文插件. 您可以翻译这个插件内的文字以帮助其他和您使用相同语言的用户" + +msgid "There are %s sentences to be translated in this plugin." +msgstr "当前插件有 %s 的条目需要被翻译" + +msgid "You may add a new translation hereafter (Please note that it is recommended to send your translation to the author so that he would be able to add your translation to the future release of the plugin !)" +msgstr "您可以添加一项新国际化配置(建议您把您的配置发送给作者, 以便用于未来版本的多国语言配置)" + +msgid "The 'SL framework' is a framework used for developping many plugins like this one. Thus, if you participate translating the framework, it will be very helpful for a bunch of plugins." +msgstr "SL framework 是一个插件开发框架(比如这个插件), 因此, 如果您愿意为我们提供翻译, 将对很多插件都大有裨益" + +msgid "There is %s languages supported for the 'SL framework'." +msgstr "SL framework 支持 %s 语言" + +msgid "There is %s sentence to be translated in the framework." +msgstr "当前框架有 %s 的条目需要被翻译" + +msgid "Send to the author of the framework" +msgstr "发送给插件开发框架的作者" + +msgid "Here are the parameters of the plugin. Modify them at will to fit your needs." +msgstr "此处是插件参数, 您可以按您的需要修改它" + +msgid "Here are the parameters of the framework. Modify them at will to fit your needs." +msgstr "此处是插件框架参数, 您可以按您的需要修改它" + +msgid "Warning: some characters have been removed because they are not allowed here" +msgstr "警告: 发现禁止的字符, 已被移除" + +msgid "Plugins that you may install" +msgstr "您可能感兴趣的插件" + +msgid "The following plugins have been developed by the author and are not yet installed:" +msgstr "以下插件是当前作者开发的并且未被安装" + +msgid "by %s persons" +msgstr "作者 %s" + +msgid "%s of %s" +msgstr "%s (从属于%s)" + +msgid "If you like the plugin, do not hesitate to donate. Please note that this plugin is developed in my spare time for free." +msgstr "如果您喜欢这个插件, 希望您捐赠给我.(这个插件完全是我利用业余时间开发的)" + +msgid "This is not mandatory! but it may be a sign that this plugin fits you needs: it makes me happy..." +msgstr "这不是强制性的! 但是这表明您喜欢我的插件, 这会让我备受鼓舞" + +msgid "The following plugins have been developed by the author and are not yet been installed:" +msgstr "以下由当前作者开发的插件您可能会感兴趣(未被安装)" + diff --git a/core/lang/SL_framework.pot b/core/lang/SL_framework.pot new file mode 100644 index 0000000..a513a4c --- /dev/null +++ b/core/lang/SL_framework.pot @@ -0,0 +1,736 @@ +Content-Transfer-Encoding: 8bit + +#: core.class.php:523 +#: core.class.php:523 +#: core.class.php:525 +#: core.class.php:525 +#: core.class.php:527 +#: core.class.php:527 +#@ SL_framework +msgid "About SL plugins..." +msgstr "" + +#: core.class.php:531 +#: core.class.php:531 +#@ SL_framework +msgid "About..." +msgstr "" + +#: core.class.php:584 +#: core.class.php:606 +#: core.class.php:1351 +#@ SL_framework +msgid "Settings" +msgstr "" + +#: core.class.php:1275 +#@ SL_framework +msgid "Log options" +msgstr "" + +#: core.class.php:1276 +#@ SL_framework +msgid "What is the debug level:" +msgstr "" + +#: core.class.php:1277 +#@ SL_framework +msgid "See the debug logs" +msgstr "" + +#: core.class.php:1278 +#@ SL_framework +msgid "1=log only the critical errors;" +msgstr "" + +#: core.class.php:1279 +#@ SL_framework +msgid "2=log only the critical errors and the standard errors;" +msgstr "" + +#: core.class.php:1280 +#@ SL_framework +msgid "3=log only the critical errors, the standard errors and the warnings;" +msgstr "" + +#: core.class.php:1281 +#@ SL_framework +msgid "4=log information;" +msgstr "" + +#: core.class.php:1282 +#@ SL_framework +msgid "5=log verbose;" +msgstr "" + +#: core.class.php:1285 +#@ SL_framework +msgid "Multisite Management" +msgstr "" + +#: core.class.php:1286 +#@ SL_framework +msgid "Do you want to allow sub-blogs to modify the translations of the plugins:" +msgstr "" + +#: core.class.php:1287 +#@ SL_framework +msgid "If this option is unchecked, the translation tab won't be displayed in the blog administration panel." +msgstr "" + +#: core.class.php:1290 +#@ SL_framework +msgid "Location of the SL plugins" +msgstr "" + +#: core.class.php:1291 +#@ SL_framework +msgid "Where do you want to display the SL plugins:" +msgstr "" + +#: core.class.php:1303 +#@ SL_framework +msgid "Summary page for the plugins developped with the SL framework" +msgstr "" + +#: core.class.php:1323 +#@ SL_framework +msgid "For now, you have installed %s plugins including %s plugins developped with the SedLex's framework" +msgstr "" + +#: core.class.php:1324 +#@ SL_framework +msgid "The core plugin is located at %s" +msgstr "" + +#: core.class.php:1335 +#@ SL_framework +msgid "Plugin name" +msgstr "" + +#: core.class.php:1335 +#@ SL_framework +msgid "Description" +msgstr "" + +#: core.class.php:1359 +#@ SL_framework +msgid "There is a SQL database for this plugin" +msgstr "" + +#: core.class.php:1363 +#@ SL_framework +msgid "Version: %s by %s" +msgstr "" + +#: core.class.php:1371 +#@ SL_framework +msgid "List of SL plugins" +msgstr "" + +#: core.class.php:1380 +#@ SL_framework +msgid "Parameters of the framework" +msgstr "" + +#: core.class.php:1394 +#@ SL_framework +msgid "Manage translation of the framework" +msgstr "" + +#: core.class.php:1531 +#@ SL_framework +msgid "The folder %s is not %s !" +msgstr "" + +#: core.class.php:1533 +#@ SL_framework +msgid "The file %s is not %s !" +msgstr "" + +#: core.class.php:1540 +#: core.class.php:1547 +#@ SL_framework +msgid "The folder %s does not exists and cannot be created !" +msgstr "" + +#: core.class.php:1552 +#@ SL_framework +msgid "The file %s does not exists and cannot be created !" +msgstr "" + +#: core.class.php:1559 +#@ SL_framework +msgid "There are some issues with folders rights. Please corret them as soon as possible as they could induce bugs and instabilities." +msgstr "" + +#: core.class.php:1559 +#@ SL_framework +msgid "Please see below:" +msgstr "" + +#: core.class.php:1652 +#@ SL_framework +msgid "Standard" +msgstr "" + +#: core.class.php:1653 +#@ SL_framework +msgid "under Plugins" +msgstr "" + +#: core.class.php:1654 +#@ SL_framework +msgid "under Tools" +msgstr "" + +#: core.class.php:1655 +#@ SL_framework +msgid "under Settings" +msgstr "" + +#: core/admin_table.class.php:193 +#@ SL_framework +msgid "Filter: %s" +msgstr "" + +#: core/admin_table.class.php:225 +#@ SL_framework +msgid "%s of %s" +msgstr "" + +#: core/admin_table.class.php:225 +#@ SL_framework +msgid "Current Page" +msgstr "" + +#: core/feedback.class.php:39 +#@ SL_framework +msgid "Donate" +msgstr "" + +#: core/feedback.class.php:40 +#@ SL_framework +msgid "If you like the plugin, do not hesitate to donate. Please note that this plugin is developed in my spare time for free." +msgstr "" + +#: core/feedback.class.php:41 +#@ SL_framework +msgid "This is not mandatory! but it may be a sign that this plugin fits you needs: it makes me happy..." +msgstr "" + +#: core/feedback.class.php:54 +#@ SL_framework +msgid "Feedback form" +msgstr "" + +#: core/feedback.class.php:55 +#@ SL_framework +msgid "This form is an easy way to contact the author and to discuss issues/incompatibilities/etc. with him" +msgstr "" + +#: core/feedback.class.php:60 +#@ SL_framework +msgid "Contact the author" +msgstr "" + +#: core/feedback.class.php:62 +#: core/translation.class.php:221 +#: core/translation.class.php:344 +#@ SL_framework +msgid "Your name:" +msgstr "" + +#: core/feedback.class.php:66 +#@ SL_framework +msgid "Your email:" +msgstr "" + +#: core/feedback.class.php:66 +#@ SL_framework +msgid "Useful... so that the author will be able to anwser you." +msgstr "" + +#: core/feedback.class.php:70 +#@ SL_framework +msgid "Your comments:" +msgstr "" + +#: core/feedback.class.php:70 +#@ SL_framework +msgid "Please note that additional information on your wordpress installation will be sent to the author in order to help the debugging if needed (such as : the wordpress version, the installed plugins, etc.)" +msgstr "" + +#: core/feedback.class.php:76 +#@ SL_framework +msgid "Send feedback" +msgstr "" + +#: core/feedback.class.php:81 +#@ SL_framework +msgid "No email have been provided for the author of this plugin. Therefore, the feedback is impossible" +msgstr "" + +#: core/feedback.class.php:177 +#@ SL_framework +msgid "The feedback has been sent" +msgstr "" + +#: core/feedback.class.php:182 +#: core/translation.class.php:588 +#@ SL_framework +msgid "An error occured sending the email." +msgstr "" + +#: core/feedback.class.php:182 +#: core/translation.class.php:588 +#@ SL_framework +msgid "Make sure that your wordpress is able to send email." +msgstr "" + +#: core/otherplugins.class.php:52 +#@ SL_framework +msgid "Plugins that you may install" +msgstr "" + +#: core/otherplugins.class.php:54 +#@ SL_framework +msgid "The following plugins have been developed by the author and are not yet been installed:" +msgstr "" + +#: core/otherplugins.class.php:56 +#@ SL_framework +msgid "Plugin not yet installed" +msgstr "" + +#: core/otherplugins.class.php:56 +#: core/otherplugins.class.php:87 +#@ SL_framework +msgid "Description and Screenshots" +msgstr "" + +#: core/otherplugins.class.php:78 +#@ SL_framework +msgid "All author's plugins have been installed. Thank you!" +msgstr "" + +#: core/otherplugins.class.php:84 +#@ SL_framework +msgid "Installed plugins" +msgstr "" + +#: core/otherplugins.class.php:85 +#@ SL_framework +msgid "You have already installed the following author's plugins:" +msgstr "" + +#: core/otherplugins.class.php:87 +#@ SL_framework +msgid "Plugin already installed" +msgstr "" + +#: core/otherplugins.class.php:144 +#@ SL_framework +msgid "The Wordpress page: %s" +msgstr "" + +#: core/otherplugins.class.php:170 +#@ SL_framework +msgid "An Unexpected HTTP Error occurred during the API request." +msgstr "" + +#: core/otherplugins.class.php:175 +#@ SL_framework +msgid "Last update:" +msgstr "" + +#: core/otherplugins.class.php:176 +#@ SL_framework +msgid "Rating: %s" +msgstr "" + +#: core/otherplugins.class.php:185 +#@ SL_framework +msgid "by %s persons" +msgstr "" + +#: core/otherplugins.class.php:187 +#@ SL_framework +msgid "Number of download:" +msgstr "" + +#: core/parameters.class.php:53 +#@ SL_framework +msgid "Add new" +msgstr "" + +#: core/parameters.class.php:210 +#@ SL_framework +msgid "Error: the submitted value is not an integer and thus, the parameter has not been updated!" +msgstr "" + +#: core/parameters.class.php:227 +#@ SL_framework +msgid "Error: the submitted string does not match the constrains" +msgstr "" + +#: core/parameters.class.php:310 +#@ SL_framework +msgid "Error: the submitted file can not be uploaded!" +msgstr "" + +#: core/parameters.class.php:327 +#@ SL_framework +msgid "Error: security issue!" +msgstr "" + +#: core/parameters.class.php:384 +#: core/parameters.class.php:536 +#: core/parameters.class.php:568 +#@ SL_framework +msgid "Parameters" +msgstr "" + +#: core/parameters.class.php:387 +#@ SL_framework +msgid "Here are the parameters of the plugin. Modify them at will to fit your needs." +msgstr "" + +#: core/parameters.class.php:389 +#@ SL_framework +msgid "Here are the parameters of the framework. Modify them at will to fit your needs." +msgstr "" + +#: core/parameters.class.php:480 +#@ SL_framework +msgid "(Delete)" +msgstr "" + +#: core/parameters.class.php:536 +#: core/parameters.class.php:568 +#@ SL_framework +msgid "Values" +msgstr "" + +#: core/parameters.class.php:632 +#@ SL_framework +msgid "Warning: some characters have been removed because they are not allowed here" +msgstr "" + +#: core/parameters.class.php:689 +#@ SL_framework +msgid "(integer)" +msgstr "" + +#: core/parameters.class.php:818 +#@ SL_framework +msgid "The URL is correct and the ID of the media file is %s." +msgstr "" + +#: core/parameters.class.php:826 +#@ SL_framework +msgid "The URL is not a media file." +msgstr "" + +#: core/parameters.class.php:828 +#@ SL_framework +msgid "Choose a media" +msgstr "" + +#: core/parameters.class.php:902 +#@ SL_framework +msgid "(If you want to delete this file, please check this box %s)" +msgstr "" + +#: core/parameters.class.php:917 +#@ SL_framework +msgid "Update" +msgstr "" + +#: core/parameters.class.php:918 +#@ SL_framework +msgid "Reset to default values" +msgstr "" + +#: core/parameters.class.php:938 +#@ SL_framework +msgid "Some parameters have not been updated due to errors (see below)!" +msgstr "" + +#: core/parameters.class.php:944 +#@ SL_framework +msgid "Parameters have been updated (but with some warnings)!" +msgstr "" + +#: core/parameters.class.php:951 +#@ SL_framework +msgid "Parameters have been updated successfully!" +msgstr "" + +#: core/parameters.class.php:957 +#@ SL_framework +msgid "Parameters have been reset to their default values!" +msgstr "" + +#: core/popup.class.php:74 +#@ SL_framework +msgid "Close popup" +msgstr "" + +#: core/translation.class.php:139 +#@ SL_framework +msgid "Here, you may configure three levels of translations: at the plugin level, at the framework level, and at the dashboard level." +msgstr "" + +#: core/translation.class.php:151 +#@ SL_framework +msgid "Please be informed that your current language is %s. Text will be translated if a translation is available." +msgstr "" + +#: core/translation.class.php:152 +#@ SL_framework +msgid "If you want to modify the language, please go in %s and find %s or %s. The second argument is your language and you may modify it as you want." +msgstr "" + +#: core/translation.class.php:157 +#@ SL_framework +msgid "Translations available for this plugin (i.e. %s)" +msgstr "" + +#: core/translation.class.php:165 +#@ SL_framework +msgid "Translations available for the SL framework (stored in %s)" +msgstr "" + +#: core/translation.class.php:190 +#@ SL_framework +msgid "Adding a new translation for this language: %s" +msgstr "" + +#: core/translation.class.php:194 +#: core/translation.class.php:261 +#@ SL_framework +msgid "Sentence to translate" +msgstr "" + +#: core/translation.class.php:194 +#: core/translation.class.php:261 +#@ SL_framework +msgid "Translation" +msgstr "" + +#: core/translation.class.php:221 +#@ SL_framework +msgid "(if your name/pseudo is already in the list, there is no need to fill this input)" +msgstr "" + +#: core/translation.class.php:222 +#: core/translation.class.php:345 +#@ SL_framework +msgid "Your email or your website:" +msgstr "" + +#: core/translation.class.php:224 +#@ SL_framework +msgid "Create the translation files" +msgstr "" + +#: core/translation.class.php:229 +#: core/translation.class.php:1148 +#: core/translation.class.php:1454 +#@ SL_framework +msgid "Add a new translation" +msgstr "" + +#: core/translation.class.php:257 +#@ SL_framework +msgid "Modifying the translation for this language: %s" +msgstr "" + +#: core/translation.class.php:332 +#@ SL_framework +msgid "The number of occurrence of %s does not match in both string. Please note that the string %s will be replaced with a contextual string." +msgstr "" + +#: core/translation.class.php:348 +#: core/translation.class.php:350 +#@ SL_framework +msgid "Modify the translation files" +msgstr "" + +#: core/translation.class.php:356 +#@ SL_framework +msgid "Modify translations" +msgstr "" + +#: core/translation.class.php:550 +#: core/translation.class.php:1126 +#: core/translation.class.php:1432 +#@ SL_framework +msgid "%s sentences have been translated (i.e. %s)." +msgstr "" + +#: core/translation.class.php:552 +#: core/translation.class.php:1128 +#: core/translation.class.php:1434 +#@ SL_framework +msgid "%s sentences have been translated (i.e. %s) %s %s sentences have to be checked because they are close (but not identical) to those to translate.%s" +msgstr "" + +#: core/translation.class.php:583 +#@ SL_framework +msgid "The translation %s have been sent" +msgstr "" + +#: core/translation.class.php:593 +#@ SL_framework +msgid "Send translation" +msgstr "" + +#: core/translation.class.php:747 +#@ SL_framework +msgid "%s file cannot be created for %s as there is no translated sentence. Please, translate at least one sentence to create a file" +msgstr "" + +#: core/translation.class.php:764 +#: core/translation.class.php:767 +#@ SL_framework +msgid "%s file has been updated for %s" +msgstr "" + +#: core/translation.class.php:765 +#: core/translation.class.php:768 +#@ SL_framework +msgid "%s file has been updated from this file" +msgstr "" + +#: core/translation.class.php:772 +#: core/translation.class.php:775 +#@ SL_framework +msgid "%s file has been created with a new translation for %s" +msgstr "" + +#: core/translation.class.php:773 +#: core/translation.class.php:776 +#@ SL_framework +msgid "%s file has been created from this file" +msgstr "" + +#: core/translation.class.php:796 +#@ SL_framework +msgid "If you do not want to loose your translations on the next upgrading of this plugin, it is recommended to send the translation files to the author by clicking %s here %s !" +msgstr "" + +#: core/translation.class.php:798 +#@ SL_framework +msgid "If you do not want to loose your translations on the next upgrading of this plugin, please save them on your hard disk before upgrading and then restore them after the upgrade !" +msgstr "" + +#: core/translation.class.php:804 +#@ SL_framework +msgid "Confirmation" +msgstr "" + +#: core/translation.class.php:1028 +#: core/translation.class.php:1340 +#@ SL_framework +msgid "Summary cached %s" +msgstr "" + +#: core/translation.class.php:1047 +#@ SL_framework +msgid "The sentences used in this plugin are in English. Help the others users using the same language as you by translating this plugin." +msgstr "" + +#: core/translation.class.php:1048 +#@ SL_framework +msgid "This plugin is available in %s languages." +msgstr "" + +#: core/translation.class.php:1062 +#@ SL_framework +msgid "There are %s sentences to be translated in this plugin." +msgstr "" + +#: core/translation.class.php:1067 +#: core/translation.class.php:1374 +#@ SL_framework +msgid "Language" +msgstr "" + +#: core/translation.class.php:1067 +#: core/translation.class.php:1374 +#@ SL_framework +msgid "Ratio %" +msgstr "" + +#: core/translation.class.php:1067 +#: core/translation.class.php:1374 +#@ SL_framework +msgid "Translators" +msgstr "" + +#: core/translation.class.php:1098 +#: core/translation.class.php:1405 +#@ SL_framework +msgid "This is the default language of the plugin. It cannot be modified." +msgstr "" + +#: core/translation.class.php:1119 +#: core/translation.class.php:1425 +#@ SL_framework +msgid "Modify" +msgstr "" + +#: core/translation.class.php:1121 +#@ SL_framework +msgid "Send to the author of the plugin" +msgstr "" + +#: core/translation.class.php:1149 +#: core/translation.class.php:1455 +#@ SL_framework +msgid "You may add a new translation hereafter (Please note that it is recommended to send your translation to the author so that he would be able to add your translation to the future release of the plugin !)" +msgstr "" + +#: core/translation.class.php:1162 +#: core/translation.class.php:1468 +#@ SL_framework +msgid "Add" +msgstr "" + +#: core/translation.class.php:1358 +#@ SL_framework +msgid "The 'SL framework' is a framework used for developping many plugins like this one. Thus, if you participate translating the framework, it will be very helpful for a bunch of plugins." +msgstr "" + +#: core/translation.class.php:1359 +#@ SL_framework +msgid "There is %s languages supported for the 'SL framework'." +msgstr "" + +#: core/translation.class.php:1369 +#@ SL_framework +msgid "There is %s sentence to be translated in the framework." +msgstr "" + +#: core/translation.class.php:1427 +#@ SL_framework +msgid "Send to the author of the framework" +msgstr "" + +#: core/utils.class.php:145 +#@ SL_framework +msgid "KB" +msgstr "" + +#: core/utils.class.php:149 +#@ SL_framework +msgid "MB" +msgstr "" + +#: core/utils.class.php:152 +#@ SL_framework +msgid "GB" +msgstr "" + diff --git a/core/lang/wp_lang_3.3.1.ini b/core/lang/wp_lang_3.3.1.ini new file mode 100644 index 0000000..5ab5fc3 --- /dev/null +++ b/core/lang/wp_lang_3.3.1.ini @@ -0,0 +1 @@ +a:23:{i:0;a:2:{i:0;s:2:"ar";i:1;s:5:"3.3.1";}i:1;a:2:{i:0;s:5:"bs_BA";i:1;s:5:"3.3.1";}i:2;a:2:{i:0;s:5:"da_DK";i:1;s:5:"3.3.1";}i:3;a:2:{i:0;s:5:"de_DE";i:1;s:5:"3.3.1";}i:4;a:2:{i:0;s:5:"en_CA";i:1;s:5:"3.3.1";}i:5;a:2:{i:0;s:2:"eo";i:1;s:3:"3.3";}i:6;a:2:{i:0;s:5:"es_ES";i:1;s:3:"3.3";}i:7;a:2:{i:0;s:5:"es_PE";i:1;s:5:"3.3.1";}i:8;a:2:{i:0;s:5:"fa_IR";i:1;s:5:"3.3.1";}i:9;a:2:{i:0;s:5:"fr_FR";i:1;s:5:"3.3.1";}i:10;a:2:{i:0;s:2:"hr";i:1;s:5:"3.3.1";}i:11;a:2:{i:0;s:5:"hu_HU";i:1;s:5:"3.3.1";}i:12;a:2:{i:0;s:5:"it_IT";i:1;s:5:"3.3.1";}i:13;a:2:{i:0;s:2:"ja";i:1;s:5:"3.3.1";}i:14;a:2:{i:0;s:5:"pt_BR";i:1;s:5:"3.3.1";}i:15;a:2:{i:0;s:5:"ru_RU";i:1;s:5:"3.3.1";}i:16;a:2:{i:0;s:5:"sl_SI";i:1;s:3:"3.3";}i:17;a:2:{i:0;s:2:"sq";i:1;s:5:"3.3.1";}i:18;a:2:{i:0;s:5:"sr_RS";i:1;s:5:"3.3.1";}i:19;a:2:{i:0;s:5:"sv_SE";i:1;s:5:"3.3.1";}i:20;a:2:{i:0;s:5:"ug_CN";i:1;s:5:"3.3.1";}i:21;a:2:{i:0;s:2:"uk";i:1;s:5:"3.3.1";}i:22;a:2:{i:0;s:5:"zh_CN";i:1;s:5:"3.3.1";}} \ No newline at end of file diff --git a/core/lang/wp_lang_3.5.ini b/core/lang/wp_lang_3.5.ini new file mode 100644 index 0000000..476309a --- /dev/null +++ b/core/lang/wp_lang_3.5.ini @@ -0,0 +1 @@ +a:14:{i:0;a:2:{i:0;s:2:"ar";i:1;s:3:"3.5";}i:1;a:2:{i:0;s:5:"da_DK";i:1;s:3:"3.5";}i:2;a:2:{i:0;s:5:"es_ES";i:1;s:3:"3.5";}i:3;a:2:{i:0;s:5:"he_IL";i:1;s:3:"3.5";}i:4;a:2:{i:0;s:2:"hr";i:1;s:3:"3.5";}i:5;a:2:{i:0;s:5:"it_IT";i:1;s:3:"3.5";}i:6;a:2:{i:0;s:2:"ja";i:1;s:3:"3.5";}i:7;a:2:{i:0;s:5:"ko_KR";i:1;s:3:"3.5";}i:8;a:2:{i:0;s:5:"pt_PT";i:1;s:3:"3.5";}i:9;a:2:{i:0;s:5:"ru_RU";i:1;s:3:"3.5";}i:10;a:2:{i:0;s:5:"sl_SI";i:1;s:3:"3.5";}i:11;a:2:{i:0;s:2:"sq";i:1;s:3:"3.5";}i:12;a:2:{i:0;s:5:"sr_RS";i:1;s:3:"3.5";}i:13;a:2:{i:0;s:5:"sv_SE";i:1;s:3:"3.5";}} \ No newline at end of file diff --git a/core/lang/wp_lang_3.5.ini.tmp b/core/lang/wp_lang_3.5.ini.tmp new file mode 100644 index 0000000..5308508 --- /dev/null +++ b/core/lang/wp_lang_3.5.ini.tmp @@ -0,0 +1 @@ +a:109:{i:0;s:2:"af";i:1;s:2:"an";i:2;s:2:"ar";i:3;s:2:"az";i:4;s:5:"az_TR";i:5;s:5:"bg_BG";i:6;s:5:"bn_BD";i:7;s:5:"bs_BA";i:8;s:2:"ca";i:9;s:3:"ckb";i:10;s:2:"co";i:11;s:3:"cpp";i:12;s:5:"cs_CZ";i:13;s:2:"cy";i:14;s:5:"da_DK";i:15;s:5:"de_DE";i:16;s:2:"dv";i:17;s:2:"el";i:18;s:5:"en_CA";i:19;s:5:"en_GB";i:20;s:2:"eo";i:21;s:5:"es_CL";i:22;s:5:"es_ES";i:23;s:5:"es_PE";i:24;s:5:"es_VE";i:25;s:2:"et";i:26;s:2:"eu";i:27;s:5:"fa_AF";i:28;s:5:"fa_IR";i:29;s:2:"fi";i:30;s:2:"fo";i:31;s:5:"fr_BE";i:32;s:5:"fr_FR";i:33;s:2:"fy";i:34;s:2:"ga";i:35;s:2:"gd";i:36;s:5:"gl_ES";i:37;s:2:"gu";i:38;s:6:"haw_US";i:39;s:3:"haz";i:40;s:5:"he_IL";i:41;s:5:"hi_IN";i:42;s:2:"hr";i:43;s:5:"hu_HU";i:44;s:2:"hy";i:45;s:5:"id_ID";i:46;s:5:"is_IS";i:47;s:5:"it_IT";i:48;s:2:"ja";i:49;s:5:"jv_ID";i:50;s:5:"ka_GE";i:51;s:3:"kea";i:52;s:2:"kk";i:53;s:2:"kn";i:54;s:5:"ko_KR";i:55;s:2:"ku";i:56;s:5:"ky_KY";i:57;s:2:"li";i:58;s:2:"lo";i:59;s:2:"lv";i:60;s:5:"me_ME";i:61;s:5:"mg_MG";i:62;s:5:"mk_MK";i:63;s:5:"ml_IN";i:64;s:2:"mn";i:65;s:2:"mr";i:66;s:5:"ms_MY";i:67;s:5:"my_MM";i:68;s:5:"nb_NO";i:69;s:5:"ne_NP";i:70;s:2:"nl";i:71;s:5:"nl_BE";i:72;s:5:"nl_NL";i:73;s:5:"nn_NO";i:74;s:2:"os";i:75;s:5:"pa_IN";i:76;s:5:"pl_PL";i:77;s:5:"pt_BR";i:78;s:5:"pt_PT";i:79;s:5:"ro_RO";i:80;s:5:"ru_RU";i:81;s:5:"ru_UA";i:82;s:5:"sa_IN";i:83;s:5:"sd_PK";i:84;s:5:"si_LK";i:85;s:5:"sk_SK";i:86;s:5:"sl_SI";i:87;s:5:"so_SO";i:88;s:2:"sq";i:89;s:5:"sr_RS";i:90;s:3:"srd";i:91;s:5:"su_ID";i:92;s:5:"sv_SE";i:93;s:2:"sw";i:94;s:5:"ta_IN";i:95;s:5:"ta_LK";i:96;s:2:"te";i:97;s:2:"tg";i:98;s:2:"th";i:99;s:2:"tl";i:100;s:5:"tr_TR";i:101;s:5:"ug_CN";i:102;s:2:"uk";i:103;s:2:"ur";i:104;s:5:"uz_UZ";i:105;s:2:"vi";i:106;s:5:"zh_CN";i:107;s:5:"zh_HK";i:108;s:5:"zh_TW";} \ No newline at end of file diff --git a/core/otherplugins.class.php b/core/otherplugins.class.php new file mode 100644 index 0000000..aeab259 --- /dev/null +++ b/core/otherplugins.class.php @@ -0,0 +1,211 @@ +nameAuthor = $nameAuthor ; + $this->exclu = $exclu ; + } + + /** ==================================================================================================================================================== + * Display the list of plugins + * + * @return void + */ + + public function list_plugins() { + // On cherche + if (!is_file(dirname(__FILE__)."/data/SLFramework_OtherPlugins_".date('Ym').".data")) { + // On efface les autres SLFramework_OtherPlugins s'ils existent + $path = dirname(__FILE__)."/data/" ; + $files = @scandir($path) ; + if ($files!==FALSE) { + foreach ($files as $f) { + if (preg_match("/^SLFramework_OtherPlugins/i", $f)) { + @unlink($path.$f) ; + } + } + } + $this->get_list_plugins() ; + } + $plugins = unserialize(@file_get_contents(dirname(__FILE__)."/data/SLFramework_OtherPlugins_".date('Ym').".data")) ; + + $plugins_active = get_plugins() ; + + echo "

".__("Plugins that you may install",'SL_framework')."

" ; + + echo "

".__("The following plugins have been developed by the author and are not yet been installed:", "SL_framework") ."

" ; + $table = new SLFramework_Table() ; + $table->title(array(__("Plugin not yet installed", "SL_framework"), __("Description and Screenshots", "SL_framework")) ) ; + $nb = 0 ; + foreach ($plugins as $slug => $plug) { + $found = false ; + // We check if the plugin is installed + foreach ($plugins_active as $slug_active => $plug_activ) { + list($slug_active, $tmp) = explode("/", $slug_active,2) ; + if ($slug==$slug_active) { + $found = true ; + } + } + if (!$found) { + if (is_ssl()) { + $plug[1] = str_replace("http://","https://",$plug[1]) ; + } + $cel1 = new adminCell($plug[0]) ; + $cel2 = new adminCell($plug[1]) ; + $table->add_line(array($cel1, $cel2), '1') ; + $nb++ ; + } + } + if ($nb==0) { + $cel1 = new adminCell("

".__("All author's plugins have been installed. Thank you!", "SL_framework") ."

") ; + $cel2 = new adminCell("") ; + $table->add_line(array($cel1, $cel2), '1') ; + } + echo $table->flush() ; + + echo "

".__("Installed plugins",'SL_framework')."

" ; + echo "

".__("You have already installed the following author's plugins:", "SL_framework") ."

" ; + $table = new SLFramework_Table() ; + $table->title(array(__("Plugin already installed", "SL_framework"), __("Description and Screenshots", "SL_framework")) ) ; + $nb = 0 ; + foreach ($plugins as $slug => $plug) { + $found = false ; + // We check if the plugin is installed + foreach ($plugins_active as $slug_active => $plug_activ) { + list($slug_active, $tmp) = explode("/", $slug_active,2) ; + if ($slug==$slug_active) { + $found = true ; + } + } + if ($found) { + $cel1 = new adminCell($plug[0]) ; + $cel2 = new adminCell($plug[1] ) ; + $table->add_line(array($cel1, $cel2), '1') ; + $nb++ ; + } + } + echo $table->flush() ; + } + + /** ==================================================================================================================================================== + * Get the list of plugins and save it on the disk + * + * @return void + */ + + public function get_list_plugins() { + $action = "query_plugins" ; + $req = new stdClass() ; + $req->author = $this->nameAuthor; + $req->fields = array('sections') ; + + $to_save = array() ; + + $request = wp_remote_post('http://api.wordpress.org/plugins/info/1.0/', array( 'body' => array('action' => $action, 'request' => serialize($req))) ); + if ( !is_wp_error($request) ) { + $res = unserialize($request['body']); + if ( $res ) { + $pV = array() ; + foreach ($res->plugins as $plug) { + $pV = array_merge($pV, array($plug->name => $plug)) ; + } + ksort($pV) ; + $res->plugins = $pV ; + + foreach ($res->plugins as $plug) { + $found_exclu = false ; + + foreach($this->exclu as $e) { + if ($e == $plug->slug) { + $found_exclu = true ; + } + } + if (!$found_exclu) { + ob_start() ; + echo "

".$plug->name."

" ; + echo "
" ; + $cells = $this->pluginInfo($plug->slug) ; + echo $cells[0] ; + $to_save [$plug->slug] = array(ob_get_clean(), $cells[1]) ; + } + } + @file_put_contents(dirname(__FILE__)."/data/SLFramework_OtherPlugins_".date('Ym').".data", serialize($to_save)) ; + } + } + } + + /** ==================================================================================================================================================== + * Display the plugin Info + * + * @param string $plugin the name of the plugin (slug name) + * @return array the first cell is for the synthesis, the second is for the description and the screenshot + */ + function pluginInfo($plugin) { + + // $action: query_plugins, plugin_information or hot_tags + // $req is an object + $action = "plugin_information" ; + $req = new stdClass() ; + $req->slug = $plugin; + $request = wp_remote_post('http://api.wordpress.org/plugins/info/1.0/', array( 'body' => array('action' => $action, 'request' => serialize($req))) ); + if ( is_wp_error($request) ) { + return array("

".__('An Unexpected HTTP Error occurred during the API request.', 'SL_framework' )."

", ""); + } else { + $res = unserialize($request['body']); + ob_start() ; + $lastUpdate = date_i18n(get_option('date_format') , strtotime($res->last_updated)) ; + echo "

".__('Last update:', 'SL_framework' )." ".$lastUpdate."

"; + echo "
".sprintf(__('Rating: %s', 'SL_framework' ), $res->rating)."    
" ; + echo "
" ; + echo "
" ; + echo "
" ; + echo "
" ; + echo "
" ; + echo "
" ; + echo "
" ; + echo "
" ; + echo "
  (".sprintf(__("by %s persons", 'SL_framework' ),$res->num_ratings).")
"; + echo "
" ; + echo "

".__('Number of download:', 'SL_framework' )." ".$res->downloaded."

"; + $cell1 = ob_get_clean() ; + + ob_start() ; + echo "
" ; + $content = explode("sections['description']) ; + echo $content[0] ; + echo "
" ; + if (isset($res->sections['screenshots'])){ + $screen = $res->sections['screenshots'] ; + $screen = str_replace("", "", $screen) ; + $screen = str_replace("
    ", "", $screen) ; + $screen = str_replace("
  1. ", "
    ", $screen) ; + $screen = str_replace("
  2. ", "", $screen) ; + $screen = preg_replace('#]*)src=\'([^\']*?)\'([^>]*)>#isU', '', $screen) ; + echo "
    ".$screen."
    " ; + } + $cell2 = ob_get_clean() ; + return array($cell1, $cell2) ; + } + } + } +} + +?> \ No newline at end of file diff --git a/core/parameters.class.php b/core/parameters.class.php new file mode 100644 index 0000000..f48a627 --- /dev/null +++ b/core/parameters.class.php @@ -0,0 +1,970 @@ +buffer = array() ; + $this->obj = $obj ; + } + + /** ==================================================================================================================================================== + * Add title in the form + * + * @param string $title the title to add + * @return void + */ + function add_title($title) { + $this->buffer[] = array('title', $title) ; + } + + /** ==================================================================================================================================================== + * Add title macroblock (i.e. that can be duplicate a plurality of time if the user needs it) in the form + * + * @param string $title the title to add + * @return void + */ + function add_title_macroblock($title, $lien="") { + if ($lien=="") { + $lien = __("Add new", "SL_framework") ; + } + $this->buffer[] = array('title_macro', $title, $lien) ; + } + + + /** ==================================================================================================================================================== + * Add a comment in the form + * + * @param string $comment the comment to add + * @return void + */ + function add_comment($comment) { + $this->buffer[] = array('comment', $comment) ; + } + + /** ==================================================================================================================================================== + * Add a comment in the form which display the default value of the param + * + * @param string $comment the comment to add + * @return void + */ + function add_comment_default_value($param) { + $comment = $this->obj->get_default_option($param) ; + $comment = str_replace("\r", "", $comment) ; + $comment = str_replace("<", "<", $comment) ; + $comment = str_replace(">", ">", $comment) ; + if (strpos($comment, "*")===0) + $comment = substr($comment, 1) ; + $comment = str_replace(" ", " ", $comment) ; + $comment = str_replace("\n", "
    ", $comment) ; + $this->buffer[] = array('comment', "$comment") ; + } + + + /** ==================================================================================================================================================== + * Add a textarea, input, checkbox, etc. in the form to enable the modification of parameter of the plugin + * + * Please note that the default value of the parameter (defined in the get_default_option function) will define the type of input form. If the default value is a:
          - string, the input form will be an input text
          - integer, the input form will be an input text accepting only integer
          - string beggining with a '*', the input form will be a textarea
          - string equals to '[file]$path', the input form will be a file input and the file will be stored at $path (relative to the upload folder)
          - string equals to '[password]$password', the input form will be a password input ;
          - string equals to '[page]$page', the input form will be a dropdown list with a list of the pages ;
          - string equals to '[media]$media', the input form will be a element in the media library ;
          - array of string, the input form will be a dropdown list
          - boolean, the input form will be a checkbox + * + * @param string $param the name of the parameter/option as defined in your plugin and especially in the get_default_option of your plugin + * @param string $name the displayed name of the parameter in the form + * @param string $forbid regexp which will delete some characters in the submitted string (only a warning is raised) : For instance $forbid = "/[^a-zA-Z0-9]/" will remove all the non alphanumeric value + * @param string $allow regexp which will verify that the submitted string will respect this rexexp, if not, the submitted value is not saved and an erreor is raised : For instance, $allow = "/^[a-zA-Z]/" require that the submitted string begin with a nalpha character + * @param array $related a list of the other params that will be actived/deactivated when this parameter is set to true/false (thus, this param should be a boolean) + * @return void + */ + + function add_param($param, $name, $forbid="", $allow="", $related=array()) { + $this->buffer[] = array('param', $param, $name, $forbid, $allow, $related) ; + } + + /** ==================================================================================================================================================== + * Get the new value of the parameter after its update (with happen upon calling flush) + * + * @param string $param the name of the parameter/option as defined in your plugin and especially in the get_default_option of your plugin + * @return mixed the value of the param (array if there is an error or null if there is no new value) + */ + + function get_new_value($param) { + global $_POST ; + global $_FILES ; + + // We reset the value to default + //--------------------------------------- + + if (isset($_POST['resetOptions'])) { + $value = $this->obj->get_default_option($param) ; + if ((is_string($value))&&(strpos($value, "*")===0)) + $value = substr($value, 1) ; + return $value ; + } + + // We find the correspondance in the array to find the allow and forbid tag + //--------------------------------------- + + $name = "" ; + $forbid = "" ; + $allow = "" ; + $related = "" ; + for($iii=0; $iiibuffer); $iii++) { + $ligne = $this->buffer[$iii] ; + if ($ligne[0]=="param") { + if ($param == $ligne[1]) { + $name = $ligne[2] ; + $forbid = $ligne[3] ; + $allow = $ligne[4] ; + $related = $ligne[5] ; + break; + } + } + } + + // What is the type of the parameter ? + //--------------------------------------- + + $type = "string" ; + if (is_bool($this->obj->get_default_option($param))) $type = "boolean" ; + if (is_int($this->obj->get_default_option($param))) $type = "int" ; + if (is_array($this->obj->get_default_option($param))) $type = "list" ; + // C'est un text si dans le texte par defaut, il y a une etoile + if (is_string($this->obj->get_default_option($param))) { + if (strpos($this->obj->get_default_option($param), "*") === 0) $type = "text" ; + } + // C'est un file si dans le texte par defaut est egal a [file] + if (is_string($this->obj->get_default_option($param))) { + if (str_replace("[file]","",$this->obj->get_default_option($param)) != $this->obj->get_default_option($param)) $type = "file" ; + } + // C'est un password si dans le texte par defaut est egal a [password] + if (is_string($this->obj->get_default_option($param))) { + if (str_replace("[password]","",$this->obj->get_default_option($param)) != $this->obj->get_default_option($param)) $type = "password" ; + } + // C'est un media si dans le texte par defaut est egal a [media] + if (is_string($this->obj->get_default_option($param))) { + if (str_replace("[media]","",$this->obj->get_default_option($param)) != $this->obj->get_default_option($param)) $type = "media" ; + } + // C'est un media si dans le texte par defaut est egal a [media] + if (is_string($this->obj->get_default_option($param))) { + if (str_replace("[page]","",$this->obj->get_default_option($param)) != $this->obj->get_default_option($param)) $type = "page" ; + } + + // We format the param + //--------------------------------------- + + $problem_e = "" ; + $problem_w = "" ; + + if (isset($_POST['submitOptions'])) { + + // Is it a boolean ? + + if ($type=="boolean") { + if (isset($_POST[$param])) { + if ($_POST[$param]) { + return true ; + } else { + return false ; + } + } else { + if (isset($_POST[$param."_workaround"])) { + return false ; + } else { + return $this->obj->get_default_option($param) ; + } + } + } + + // Is it an integer ? + + if ($type=="int") { + if (isset($_POST[$param])) { + if (SLFramework_Utils::is_really_int($_POST[$param])) { + return (int)$_POST[$param] ; + } else { + if ($_POST[$param]=="") { + return 0 ; + } else { + return array("error", "

    ".__('Error: the submitted value is not an integer and thus, the parameter has not been updated!', 'SL_framework')."

    \n") ; + } + } + } else { + return $this->obj->get_default_option($param) ; + } + } + + // Is it a string ? + + if (($type=="string")||($type=="text")||($type=="password")) { + if (isset($_POST[$param])) { + $tmp = $_POST[$param] ; + if ($forbid!="") { + $tmp = preg_replace($forbid, '', $_POST[$param]) ; + } + if (($allow!="")&&(!preg_match($allow, $_POST[$param]))) { + return array("error","

    ".__('Error: the submitted string does not match the constrains', 'SL_framework')." (".$allow.")!

    \n") ; + } else { + return stripslashes($tmp) ; + } + } else { + if ($type=="text") { + if (substr($this->obj->get_default_option($param), 0,1)) { + return substr($this->obj->get_default_option($param), 1) ; + } + } + return $this->obj->get_default_option($param) ; + } + } + + // Is it a list ? + + if ($type=="list") { + if (isset($_POST[$param])) { + $selected = $_POST[$param] ; + $array = $this->obj->get_param($param) ; + $mod = false ; + for ($i=0 ; $iobj->get_default_option($param) ; + } + } + + // is it a media + if ($type=="media") { + if (isset($_POST[$param])) { + return $_POST[$param] ; + } else { + return str_replace("[media]","", $this->obj->get_default_option($param)) ; + } + } + + // is it a page + if ($type=="page") { + if (isset($_POST[$param])) { + return $_POST[$param] ; + } else { + return str_replace("[page]","", $this->obj->get_default_option($param)) ; + } + } + + // Is it a file ? + if ($type=="file") { + // deleted ? + $upload_dir = wp_upload_dir(); + if (isset($_POST["delete_".$param])) { + $deleted = $_POST["delete_".$param] ; + if ($deleted=="1") { + if (file_exists($upload_dir["basedir"].$this->obj->get_param($param))){ + @unlink($upload_dir["basedir"].$this->obj->get_param($param)) ; + } + return $this->obj->get_default_option($param) ; + } + } + + if (isset($_FILES[$param])) { + $tmp = $_FILES[$param]['tmp_name'] ; + if ($tmp != "") { + if ($_FILES[$param]["error"] > 0) { + return array("error", "

    ".__('Error: the submitted file can not be uploaded!', 'SL_framework')."

    \n") ; + } else { + $upload_dir = wp_upload_dir(); + $path = $upload_dir["basedir"].str_replace("[file]","", $this->obj->get_default_option($param)) ; + + if (is_uploaded_file($_FILES[$param]['tmp_name'])) { + if (!is_dir($path)) { + @mkdir($path, 0777, true) ; + } + if (file_exists($path . $_FILES[$param]["name"])) { + @unlink($path . $_FILES[$param]["name"]) ; + } + move_uploaded_file($_FILES[$param]["tmp_name"], $path . $_FILES[$param]["name"]); + return str_replace("[file]","", $this->obj->get_default_option($param). $_FILES[$param]["name"]) ; + } else if (is_file($path . $_FILES[$param]["name"])) { + return str_replace("[file]","", $this->obj->get_default_option($param). $_FILES[$param]["name"]) ; + } else { + return array("error", "

    ".__('Error: security issue!'.$path . $_FILES[$param]["name"], 'SL_framework')."

    \n") ; + } + } + } else { + return $this->obj->get_param($param) ; + } + } else { + return $this->obj->get_param($param) ; + } + } + } + return null ; + } + + /** ==================================================================================================================================================== + * Remove a parameter of the plugin which has been previously added through add_param (then it can be useful if you want to update a parameter without printing the form) + * + * It will also remove any comment for the same + * + * @param string $param the name of the parameter/option as defined in your plugin and especially in the get_default_option of your plugin + * @return void + */ + + function remove_param($param) { + $search_comment = false ; + foreach($this->buffer as $j=>$i){ + if (!$search_comment) { + if($i[0] == $param){ + unset($this->buffer[$j]) ; + $search_comment = true ; + } + } else { + if ($i[0] == "comment"){ + unset($this->buffer[$j]) ; + } else { + return ; + } + } + } + $this->buffer = array_values($this->buffer) ; + } + + + /** ==================================================================================================================================================== + * Print the form with parameters + * + * @return void + */ + function flush() { + global $_POST ; + global $_FILES ; + global $wpdb ; + + $this->buffer[] = array('end', "") ; + + // We create the beginning of the form + + $this->output = "

    ".__("Parameters",'SL_framework')."

    " ; + + if ($this->obj->getPluginID()!="") { + $this->output .= "

    ".__("Here are the parameters of the plugin. Modify them at will to fit your needs.","SL_framework")."

    " ; + } else { + $this->output .= "

    ".__("Here are the parameters of the framework. Modify them at will to fit your needs.","SL_framework")."

    " ; + } + $this->output .= "
    \n" ; + + // We compute the parameter output + $hastobeclosed = false ; + $maj = false ; + $modified = false ; + $error = false ; + $warning = false ; + $toExecuteWhenLoaded = "" ; + $macroisdisplayed_count = 0 ; + $macroisdisplayed = false ; + $macroisdisplayed_avoidnext = false ; + + for($iii=0; $iiibuffer); $iii++) { + $ligne = $this->buffer[$iii] ; + + // Is it a title + if (($ligne[0]=="end")||($ligne[0]=="title")||($ligne[0]=="title_macro")) { + if ($hastobeclosed) { + $this->output .= $currentTable->flush()."
    " ; + $hastobeclosed = false ; + } + + // On test si on doit recommencer + if (($macroisdisplayed) && (!$macroisdisplayed_avoidnext)) { + $nnn = 1 ; + // We search for the next parameter + $found_param=false ; + while (isset($this->buffer[$macro_lasttitle+$nnn])) { + $first_param_after = $this->buffer[$macro_lasttitle+$nnn] ; + if ($first_param_after[0]=='param') { + $found_param = true ; + $first_param_after = $first_param_after[1] ; + break ; + } else if ($first_param_after[0]=='comment') { + $nnn ++ ; + } else { + break ; + } + } + + // if the param has been found + if ($found_param) { + $all_names = $this->obj->get_name_params() ; + if (in_array($first_param_after."_macro".($macroisdisplayed_count+1), $all_names)) { + $iii = $macro_lasttitle-1 ; + $macroisdisplayed_count ++ ; + $macroisdisplayed_avoidnext = true ; + continue ; + } else { + $macroisdisplayed_count=0; + $macroisdisplayed = false ; + $macroisdisplayed_avoidnext = false ; + } + } + } + $macroisdisplayed_avoidnext = false ; + + // We create a new table + $currentTable = new SLFramework_Table() ; + $currentTable->removeFooter() ; + $hastobeclosed = true ; + if ($ligne[0]=="title") { + $currentTable->title(array($ligne[1], "") ) ; + $macroisdisplayed = false ; + $macroisdisplayed_text = "" ; + } else if ($ligne[0]=="title_macro"){ + + // Add delete button + $params = "[" ; + $count_param_temp = 0 ; + $nnn=1 ; + while (isset($this->buffer[$iii+$nnn])) { + $first_param_after = $this->buffer[$iii+$nnn] ; + if ($first_param_after[0]=='param') { + if ($count_param_temp!=0) { + $params .= "," ; + } + $params .= "\"".$first_param_after[1]."_macro".$macroisdisplayed_count."\"" ; + $nnn ++ ; + $count_param_temp ++ ; + } else if ($first_param_after[0]=='comment') { + $nnn ++ ; + } else { + break ; + } + } + $params .= "]" ; + $md5 = sha1($params) ; + $delete = " ".__('(Delete)', 'SL_framework')."" ; + $x = plugin_dir_url("/").'/'.str_replace(basename(__FILE__),"",plugin_basename(__FILE__)) ; + $delete .= "" ; + + // Add add button + $add = "" ; + $macroisdisplayed_text = $ligne[2] ; + if ($macroisdisplayed_count==0) { + $params = "[" ; + $count_param_temp = 0 ; + $nnn=1 ; + while (isset($this->buffer[$iii+$nnn])) { + $first_param_after = $this->buffer[$iii+$nnn] ; + if ($first_param_after[0]=='param') { + if ($count_param_temp!=0) { + $params .= "," ; + } + $params .= "\"".$first_param_after[1]."_macro\"" ; + $nnn ++ ; + $count_param_temp ++ ; + } else if ($first_param_after[0]=='comment') { + $nnn ++ ; + } else { + break ; + } + } + $params .= "]" ; + $md5 = sha1($params) ; + $add = " (".$macroisdisplayed_text.")" ; + $x = plugin_dir_url("/").'/'.str_replace(basename(__FILE__),"",plugin_basename(__FILE__)) ; + $add .= "" ; + } + + if (strpos($ligne[1],"%s")!==false) { + $currentTable->title(array(sprintf($ligne[1], $macroisdisplayed_count+1).$delete.$add, "")) ; + } else { + $currentTable->title(array($ligne[1].$delete, "")) ; + } + $macro_lasttitle = $iii ; + $macroisdisplayed_count_elements = 0 ; + $macroisdisplayed = true ; + } + } + // compte le nombre d element dans la macro + if ($macroisdisplayed) { + $macroisdisplayed_count_elements ++ ; + } else { + $macroisdisplayed_count_elements = 0 ; + } + + // Is it a comment + if ($ligne[0]=="comment") { + if (!$hastobeclosed) { + // We create a default table as no title has been provided + $currentTable = new SLFramework_Table() ; + $currentTable->removeFooter() ; + $currentTable->title(array(__("Parameters","SL_framework"), __("Values","SL_framework")) ) ; + $hastobeclosed = true ; + } + $cl = "

    ".$ligne[1]."

    " ; + // We check if there is a comment just after it + while (isset($this->buffer[$iii+1])) { + if ($this->buffer[$iii+1][0]!="comment") break ; + $cl .= "

    ".$this->buffer[$iii+1][1]."

    " ; + $iii++ ; + } + $cel_label = new adminCell($cl) ; + $cel_value = new adminCell("") ; + $currentTable->add_line(array($cel_label, $cel_value), '1') ; + } + + + // Is it a param + if ($ligne[0]=="param") { + $param = $ligne[1] ; + $param_default = $ligne[1] ; + //macro + if ($macroisdisplayed) { + $param = $param."_macro".$macroisdisplayed_count ; + } + $name = $ligne[2] ; + $forbid = $ligne[3] ; + $allow = $ligne[4] ; + $related = $ligne[5] ; + if (!$hastobeclosed) { + // We create a default table as no title has been provided + $currentTable = new SLFramework_Table() ; + $currentTable->removeFooter() ; + $currentTable->title(array(__("Parameters","SL_framework"), __("Values","SL_framework")) ) ; + $hastobeclosed = true ; + } + + // What is the type of the parameter ? + //--------------------------------------- + $type = "string" ; + if (is_bool($this->obj->get_default_option($param_default))) $type = "boolean" ; + if (is_int($this->obj->get_default_option($param_default))) $type = "int" ; + if (is_array($this->obj->get_default_option($param_default))) $type = "list" ; + // C'est un text si dans le texte par defaut, il y a une etoile + if (is_string($this->obj->get_default_option($param_default))) { + if (strpos($this->obj->get_default_option($param_default), "*") === 0) $type = "text" ; + } + // C'est un file si dans le texte par defaut est egal a [file] + if (is_string($this->obj->get_default_option($param_default))) { + if (str_replace("[file]","",$this->obj->get_default_option($param_default)) != $this->obj->get_default_option($param_default)) $type = "file" ; + } + // C'est un password si dans le texte par defaut est egal a [password] + if (is_string($this->obj->get_default_option($param_default))) { + if (str_replace("[password]","",$this->obj->get_default_option($param_default)) != $this->obj->get_default_option($param_default)) $type = "password" ; + } + // C'est un media si dans le texte par defaut est egal a [media] + if (is_string($this->obj->get_default_option($param_default))) { + if (str_replace("[media]","",$this->obj->get_default_option($param_default)) != $this->obj->get_default_option($param_default)) $type = "media" ; + } + // C'est un page si dans le texte par defaut est egal a [page] + if (is_string($this->obj->get_default_option($param_default))) { + if (str_replace("[page]","",$this->obj->get_default_option($param_default)) != $this->obj->get_default_option($param_default)) $type = "page" ; + } + + // We reset the param + //--------------------------------------- + + $problem_e = "" ; + $problem_w = "" ; + if (isset($_POST['resetOptions'])) { + $maj = true ; + $new_param = $this->get_new_value($param_default) ; + $modified = true ; + $this->obj->set_param($param, $new_param) ; + } + + // We update the param + //--------------------------------------- + + $problem_e = "" ; + $problem_w = "" ; + if (isset($_POST['submitOptions'])) { + + $maj = true ; + + $new_param = $this->get_new_value($param) ; + $old_param = $this->obj->get_param($param) ; + + if (is_array($new_param) && (isset($new_param[0])) && ($new_param[0]=='error')) { + $problem_e .= $new_param[1] ; + $error = true ; + } else { + + // Warning management + if (($type=="string")||($type=="text")||($type=="password")) { + if (isset($_POST[$param])) { + if ($new_param!=stripslashes($_POST[$param])) { + $problem_w .= "

    ".__('Warning: some characters have been removed because they are not allowed here', 'SL_framework')." (".$forbid.")!

    \n" ; + $warning = true ; + } + } + } + + // Update of the value + if ($new_param != $old_param) { + $modified = true ; + $this->obj->set_param($param, $new_param) ; + SLFramework_Debug::log(get_class(), "The parameter ".$param." of the plugin ".$this->obj->getPluginID()." have been modified", 4) ; + } + } + } + + // We built a new line for the table + //--------------------------------------- + if ($type=="boolean") { + $cl = "

    " ; + // We check if there is a comment just after it + while (isset($this->buffer[$iii+1])) { + if ($this->buffer[$iii+1][0]!="comment") break ; + $cl .= "

    ".$this->buffer[$iii+1][1]."

    " ; + $iii++ ; + } + $cel_label = new adminCell($cl) ; + $checked = "" ; + if ($this->obj->get_param($param)) { + $checked = "checked" ; + } + if (count($related)>0) { + $onClick = "onClick='activateDeactivate_Params(\"".$param."\",new Array(\"".implode("\",\"", $related)."\"))'" ; + $toExecuteWhenLoaded .= "activateDeactivate_Params(\"".$param."\",new Array(\"".implode("\",\"", $related)."\"));\n" ; + } else { + $onClick = "" ; + } + $workaround = "" ; + $cel_value = new adminCell("

    ".$workaround."

    ") ; + $currentTable->add_line(array($cel_label, $cel_value), '1') ; + } + + if ($type=="int") { + $ew = "" ; + if ($problem_e!="") { + $ew .= "
    ".$problem_e."
    " ; + } + if ($problem_w!="") { + $ew .= "
    ".$problem_w."
    " ; + } + $cl = "

    ".$ew ; + // We check if there is a comment just after it + while (isset($this->buffer[$iii+1])) { + if ($this->buffer[$iii+1][0]!="comment") break ; + $cl .= "

    ".$this->buffer[$iii+1][1]."

    " ; + $iii++ ; + } + $cel_label = new adminCell($cl) ; + $cel_value = new adminCell("

    ".__('(integer)', 'SL_framework')."

    ") ; + $currentTable->add_line(array($cel_label, $cel_value), '1') ; + } + + if ($type=="string") { + $ew = "" ; + if ($problem_e!="") { + $ew .= "
    ".$problem_e."
    " ; + } + if ($problem_w!="") { + $ew .= "
    ".$problem_w."
    " ; + } + $cl = "

    ".$ew ; + // We check if there is a comment just after it + while (isset($this->buffer[$iii+1])) { + if ($this->buffer[$iii+1][0]!="comment") break ; + $cl .= "

    ".$this->buffer[$iii+1][1]."

    " ; + $iii++ ; + } + $cel_label = new adminCell($cl) ; + $cel_value = new adminCell("

    ") ; + $currentTable->add_line(array($cel_label, $cel_value), '1') ; + } + + if ($type=="password") { + $ew = "" ; + if ($problem_e!="") { + $ew .= "
    ".$problem_e."
    " ; + } + if ($problem_w!="") { + $ew .= "
    ".$problem_w."
    " ; + } + $cl = "

    ".$ew ; + // We check if there is a comment just after it + while (isset($this->buffer[$iii+1])) { + if ($this->buffer[$iii+1][0]!="comment") break ; + $cl .= "

    ".$this->buffer[$iii+1][1]."

    " ; + $iii++ ; + } + $cel_label = new adminCell($cl) ; + $cel_value = new adminCell("

    ") ; + $currentTable->add_line(array($cel_label, $cel_value), '1') ; + } + + if ($type=="text") { + $num = min(22,count(explode("\n", $this->obj->get_param($param))) + 1) ; + $ew = "" ; + if ($problem_e!="") { + $ew .= "
    ".$problem_e."
    " ; + } + if ($problem_w!="") { + $ew .= "
    ".$problem_w."
    " ; + } + $cl = "

    ".$ew ; + // We check if there is a comment just after it + while (isset($this->buffer[$iii+1])) { + if ($this->buffer[$iii+1][0]!="comment") break ; + $cl .= "

    ".$this->buffer[$iii+1][1]."

    " ; + $iii++ ; + } + $cel_label = new adminCell($cl) ; + $cel_value = new adminCell("

    ") ; + $currentTable->add_line(array($cel_label, $cel_value), '1') ; + } + + if ($type=="list") { + $cl = "

    " ; + // We check if there is a comment just after it + while (isset($this->buffer[$iii+1])) { + if ($this->buffer[$iii+1][0]!="comment") break ; + $cl .= "

    ".$this->buffer[$iii+1][1]."

    " ; + $iii++ ; + } + $cel_label = new adminCell($cl) ; + $cc = "" ; + ob_start() ; + ?> +

    + +

    + add_line(array($cel_label, $cel_value), '1') ; + } + + if ($type=="media") { + $cl = "

    ".$ew ; + // We check if there is a comment just after it + while (isset($this->buffer[$iii+1])) { + if ($this->buffer[$iii+1][0]!="comment") break ; + $cl .= "

    ".$this->buffer[$iii+1][1]."

    " ; + $iii++ ; + } + $cel_label = new adminCell($cl) ; + + // If this is the URL of an auto-generated thumbnail, get the URL of the original image + $attachment_url = preg_replace( '/-\d+x\d+(?=\.(jpg|jpeg|png|gif)$)/i', '', $this->obj->get_param($param) ); + $attachment = $wpdb->get_col($wpdb->prepare("SELECT ID FROM $wpdb->posts WHERE guid='%s';",$attachment_url)); + if (isset($attachment[0])) { + $id_media = $attachment[0]; + $msg_media = "

    ".sprintf(__("The URL is correct and the ID of the media file is %s.",'SL_framework'),''.$id_media."")."

    " ; + if (wp_attachment_is_image( $id_media )) { + $msg_media .= '

    '.wp_get_attachment_image( $id_media, "thumbnail").'

    ' ; + } else { + $msg_media .= '

    ".__("The URL is not a media file.",'SL_framework')."

    " ; + } + $cel_value = new adminCell("

    ".$msg_media) ; + + $currentTable->add_line(array($cel_label, $cel_value), '1') ; + } + + if ($type=="page") { + $cl = "

    ".$ew ; + // We check if there is a comment just after it + while (isset($this->buffer[$iii+1])) { + if ($this->buffer[$iii+1][0]!="comment") break ; + $cl .= "

    ".$this->buffer[$iii+1][1]."

    " ; + $iii++ ; + } + $cel_label = new adminCell($cl) ; + + $selected = 0 ; + if ($this->obj->get_param($param)!="[page]") { + $selected = $this->obj->get_param($param) ; + } + + $cel_value = new adminCell("

    ".wp_dropdown_pages(array('echo' => 0,'name' => $param, 'selected' => $selected, "show_option_none" => __('(none)', "SLFramework"), "option_none_value"=>'[page]'))."

    ") ; + + $currentTable->add_line(array($cel_label, $cel_value), '1') ; + } + + if ($type=="file") { + $ew = "" ; + if ($problem_e!="") { + $ew .= "
    ".$problem_e."
    " ; + } + if ($problem_w!="") { + $ew .= "
    ".$problem_w."
    " ; + } + $cl = "

    ".$ew ; + // We check if there is a comment just after it + while (isset($this->buffer[$iii+1])) { + if ($this->buffer[$iii+1][0]!="comment") break ; + $cl .= "

    ".$this->buffer[$iii+1][1]."

    " ; + $iii++ ; + } + $cel_label = new adminCell($cl) ; + $cc = "" ; + ob_start() ; + $upload_dir = wp_upload_dir(); + if (!file_exists($upload_dir["basedir"].$this->obj->get_param($param))) { + $this->obj->set_param($param,$this->obj->get_default_option($param_default)) ; + } + if ($this->obj->get_default_option($param_default)==$this->obj->get_param($param)) { + ?> +

    + obj->get_param($param) ; + $pathdir = $upload_dir["basedir"].$this->obj->get_param($param) ; + $info = pathinfo($pathdir) ; + if ((strtolower($info['extension'])=="png") || (strtolower($info['extension'])=="gif") || (strtolower($info['extension'])=="jpg") ||(strtolower($info['extension'])=="bmp")) { + list($width, $height) = getimagesize($pathdir) ; + $max_width = 100; + $max_height = 100; + $ratioh = $max_height/$height; + $ratiow = $max_width/$width; + $ratio = min($ratioh, $ratiow); + // New dimensions + $width = min(intval($ratio*$width), $width); + $height = min(intval($ratio*$height), $height); + ?> +

    obj->get_param($param) ; ?>

    + +

    ' width="75px" style="vertical-align:middle;"/> obj->get_param($param) ; ?>

    + +

    ") ; ?>

    + add_line(array($cel_label, $cel_value), '1') ; + } + } + // End is it a param? + } + + // We finish the form output + ob_start(); + ?> +
    +   + +
    + +
    + + +
    +

    +
    + +
    +

    +
    + +
    +

    +
    + +
    +

    +
    + output .= ob_get_clean(); + echo $this->output ; + } + } +} + + +?> \ No newline at end of file diff --git a/core/popup.class.php b/core/popup.class.php new file mode 100644 index 0000000..a61de18 --- /dev/null +++ b/core/popup.class.php @@ -0,0 +1,99 @@ +callback = $callback ; + $this->css = $css ; + $this->title = $title ; + $this->content = $content ; + $this->javascriptdisplayed = false ; + } + + /** ==================================================================================================================================================== + * Display the popup + * + * @return void + */ + + function render() { + ob_start() ; + ?> + + css."'>" ; + echo "" ; + echo "
    " ; + echo " ".__("Close popup", " ; + echo "
    " ; + echo "

    ".$this->title."

    " ; + echo "
    " ; + echo "
    " ; + echo $this->content ; + echo "
    " ; + echo "
    " ; + + + ob_start() ; + ?> + + \ No newline at end of file diff --git a/core/progress_bar.class.php b/core/progress_bar.class.php new file mode 100644 index 0000000..61525b8 --- /dev/null +++ b/core/progress_bar.class.php @@ -0,0 +1,54 @@ +length = $length ; + $this->insideText = $insideText ; + $this->height = $height ; + $this->start = $start ; + $this->id = $id ; + } + + + /** ==================================================================================================================================================== + * Print the progress bar code + * Once the progress bar is displayed, you may modify the progression by calling in javascript progressBar_modifyProgression(25,"id") which modify the progression to 25% for the ID "id" (the ID is not mandatory, by default the ID will be "progressbar") + * Once the progress bar is displayed, you may modify the text by calling in javascript progressBar_modifyText("new text","id") which modify the text to "new text" for the ID "id" (the ID is not mandatory, by default the ID will be "progressbar") + * + * @return void + */ + function flush() { + ob_start(); + ?> +
    + /img/progressbar.png" style='position:absolute;left:0;top:-height) ; ?>px;height:height) ; ?>px;width:length ; ?>px;'/> + " src="/img/progressbar.png" style='position:absolute;left:0;top:0px;height:height) ; ?>px;width:length*$this->start/100) ; ?>px;'/> +
    " style='position:absolute;left:0;top:0px;height:height; ?>px;text-align:center;line-height:height; ?>px;width:length ; ?>px;'>insideText?> 
    +
    + + \ No newline at end of file diff --git a/core/tabs.class.php b/core/tabs.class.php new file mode 100644 index 0000000..1837223 --- /dev/null +++ b/core/tabs.class.php @@ -0,0 +1,146 @@ +title = array() ; + $this->content = array() ; + $this->image = array() ; + $this->activated = 0 ; + } + + /** ==================================================================================================================================================== + * Add a tabulation + * For instance, + * $tabs = new SLFramework_Tabs() ;
    ob_start() ;
    echo "Content 1" ;
    $tabs->add_tab("Tab1", ob_get_clean() ) ;
    ob_start() ;
    echo "Content 2" ;
    $tabs->add_tab("Tab2", ob_get_clean() ) ;
    echo $tabs->flush() ;
    + * will create to basic tabulation. + * @param string $title the title of the tabulation + * @param string $content the HTML content of the tab + * @param string $image the path of an image that will be display before the title. Please indicate a 20x20px image. + * @return void + */ + + function add_tab($title, $content, $image="") { + $this->title[] = $title ; + $this->content[] = $content ; + $this->image[] = $image ; + } + + /** ==================================================================================================================================================== + * Change the tabs activated by default (normally it is the first tab i.e. 1) + * 1 is the first, 2 is the second, etc. + * + * @param integer $nb the tabultaion index to activate + * @return void + */ + function activate($nb) { + $this->activated = $nb-1 ; + } + + /** ==================================================================================================================================================== + * Print the tabulation HTML code. + * + * @return void + */ + function flush() { + global $_SERVER ; + ob_start() ; + $rnd = rand(1, 100000) ; +?> + + +
    +
      +title) ; + + for ($i=0 ; $ititle) ; $i++) { + if ($this->image[$i]=="") { + $this->image[$i] = plugin_dir_url("/").'/'.str_replace(basename(__FILE__),"",plugin_basename(__FILE__))."img/tab_empty.png" ; + } +?>
    • title[$i] ?>
    • +
    +title) ; $i++) { +?>
    + content[$i] ; ?> +
    + +
    + \ No newline at end of file diff --git a/core/templates/css/css_admin.css b/core/templates/css/css_admin.css new file mode 100644 index 0000000..e69de29 diff --git a/core/templates/css/css_front.css b/core/templates/css/css_front.css new file mode 100644 index 0000000..e69de29 diff --git a/core/templates/js/js_admin.js b/core/templates/js/js_admin.js new file mode 100644 index 0000000..e69de29 diff --git a/core/templates/js/js_front.js b/core/templates/js/js_front.js new file mode 100644 index 0000000..e69de29 diff --git a/core/templates/my-plugin.php b/core/templates/my-plugin.php new file mode 100644 index 0000000..52faca3 --- /dev/null +++ b/core/templates/my-plugin.php @@ -0,0 +1,369 @@ +The description of the plugin on this line.

    +Version: 1.0.0 +Framework: SL_Framework +Author: The name of the author +Author URI: http://www.yourdomain.com/ +Author Email: youremail@yourdomain.com +Framework Email: sedlex@sedlex.fr +Plugin URI: http://wordpress.org/plugins/my-plugin/ +License: GPL3 +*/ + +//Including the framework in order to make the plugin work + +require_once('core.php') ; + +/** ==================================================================================================================================================== +* This class has to be extended from the pluginSedLex class which is defined in the framework +*/ +class my_plugin extends pluginSedLex { + + /** ==================================================================================================================================================== + * Plugin initialization + * + * @return void + */ + static $instance = false; + + protected function _init() { + global $wpdb ; + + // Name of the plugin (Please modify) + $this->pluginName = 'My Plugin' ; + + // The structure of the SQL table if needed (for instance, 'id_post mediumint(9) NOT NULL, short_url TEXT DEFAULT '', UNIQUE KEY id_post (id_post)') + $this->tableSQL = "" ; + // The name of the SQL table (Do no modify except if you know what you do) + $this->table_name = $wpdb->prefix . "pluginSL_" . get_class() ; + + //Initilisation of plugin variables if needed (Please modify) + $this->your_var1 = 1 ; + $this->your_var2 = array() ; + $this->your_varn = "n" ; + + //Configuration of callbacks, shortcode, ... (Please modify) + // For instance, see + // - add_shortcode (http://codex.wordpress.org/Function_Reference/add_shortcode) + // - add_action + // - http://codex.wordpress.org/Function_Reference/add_action + // - http://codex.wordpress.org/Plugin_API/Action_Reference + // - add_filter + // - http://codex.wordpress.org/Function_Reference/add_filter + // - http://codex.wordpress.org/Plugin_API/Filter_Reference + // Be aware that the second argument should be of the form of array($this,"the_function") + // For instance add_action( "wp_ajax_foo", array($this,"bar")) : this function will call the method 'bar' when the ajax action 'foo' is called + + + // Important variables initialisation (Do not modify) + $this->path = __FILE__ ; + $this->pluginID = get_class() ; + + // activation and deactivation functions (Do not modify) + register_activation_hook(__FILE__, array($this,'install')); + register_deactivation_hook(__FILE__, array($this,'deactivate')); + register_uninstall_hook(__FILE__, array('my_plugin','uninstall_removedata')); + } + + /** ==================================================================================================================================================== + * In order to uninstall the plugin, few things are to be done ... + * (do not modify this function) + * + * @return void + */ + + static public function uninstall_removedata () { + global $wpdb ; + // DELETE OPTIONS + delete_option('my_plugin'.'_options') ; + if (is_multisite()) { + delete_site_option('my_plugin'.'_options') ; + } + + // DELETE SQL + if (function_exists('is_multisite') && is_multisite()){ + $old_blog = $wpdb->blogid; + $old_prefix = $wpdb->prefix ; + // Get all blog ids + $blogids = $wpdb->get_col($wpdb->prepare("SELECT blog_id FROM ".$wpdb->blogs)); + foreach ($blogids as $blog_id) { + switch_to_blog($blog_id); + $wpdb->query("DROP TABLE ".str_replace($old_prefix, $wpdb->prefix, $wpdb->prefix . "pluginSL_" . 'my_plugin')) ; + } + switch_to_blog($old_blog); + } else { + $wpdb->query("DROP TABLE ".$wpdb->prefix . "pluginSL_" . 'my_plugin' ) ; + } + } + + /**==================================================================================================================================================== + * Function called when the plugin is activated + * For instance, you can do stuff regarding the update of the format of the database if needed + * If you do not need this function, you may delete it. + * + * @return void + */ + + public function _update() { + SLFramework_Debug::log(get_class(), "Update the plugin." , 4) ; + } + + /**==================================================================================================================================================== + * Function called to return a number of notification of this plugin + * This number will be displayed in the admin menu + * + * @return int the number of notifications available + */ + + public function _notify() { + return 0 ; + } + + + /** ==================================================================================================================================================== + * Init javascript for the public side + * If you want to load a script, please type : + * wp_enqueue_script( 'jsapi', 'https://www.google.com/jsapi'); or + * wp_enqueue_script('my_plugin_script', plugins_url('/script.js', __FILE__)); + * $this->add_inline_js($js_text); + * $this->add_js($js_url_file); + * + * @return void + */ + + function _public_js_load() { + return ; + } + + /** ==================================================================================================================================================== + * Init css for the public side + * If you want to load a style sheet, please type : + * $this->add_inline_css($css_text); + * $this->add_css($css_url_file); + * + * @return void + */ + + function _public_css_load() { + return ; + } + + /** ==================================================================================================================================================== + * Init javascript for the admin side + * If you want to load a script, please type : + * wp_enqueue_script( 'jsapi', 'https://www.google.com/jsapi'); or + * wp_enqueue_script('my_plugin_script', plugins_url('/script.js', __FILE__)); + * $this->add_inline_js($js_text); + * $this->add_js($js_url_file); + * + * @return void + */ + + function _admin_js_load() { + return ; + } + + /** ==================================================================================================================================================== + * Init css for the admin side + * If you want to load a style sheet, please type : + * $this->add_inline_css($css_text); + * $this->add_css($css_url_file); + * + * @return void + */ + + function _admin_css_load() { + return ; + } + + /** ==================================================================================================================================================== + * Called when the content is displayed + * + * @param string $content the content which will be displayed + * @param string $type the type of the article (e.g. post, page, custom_type1, etc.) + * @param boolean $excerpt if the display is performed during the loop + * @return string the new content + */ + + function _modify_content($content, $type, $excerpt) { + return $content; + } + + /** ==================================================================================================================================================== + * Add a button in the TinyMCE Editor + * + * To add a new button, copy the commented lines a plurality of times (and uncomment them) + * + * @return array of buttons + */ + + function add_tinymce_buttons() { + $buttons = array() ; + //$buttons[] = array(__('title', $this->pluginID), '[tag]', '[/tag]', plugin_dir_url("/").'/'.str_replace(basename( __FILE__),"",plugin_basename( __FILE__)).'img/img_button.png') ; + return $buttons ; + } + + /**==================================================================================================================================================== + * Function to instantiate the class and make it a singleton + * This function is not supposed to be modified or called (the only call is declared at the end of this file) + * + * @return void + */ + + public static function getInstance() { + if ( !self::$instance ) { + self::$instance = new self; + } + return self::$instance; + } + + /** ==================================================================================================================================================== + * Define the default option values of the plugin + * This function is called when the $this->get_param function do not find any value fo the given option + * Please note that the default return value will define the type of input form: if the default return value is a: + * - string, the input form will be an input text + * - integer, the input form will be an input text accepting only integer + * - string beggining with a '*', the input form will be a textarea + * - boolean, the input form will be a checkbox + * + * @param string $option the name of the option + * @return variant of the option + */ + public function get_default_option($option) { + switch ($option) { + // Alternative default return values (Please modify) + case 'opt1' : return "Default" ; break ; + case 'opt2' : return false ; break ; + case 'opt3' : return 1 ; break ; + case 'opt4' : return "*Hi everyone !" ; break ; + } + return null ; + } + + /** ==================================================================================================================================================== + * The admin configuration page + * This function will be called when you select the plugin in the admin backend + * + * @return void + */ + + public function configuration_page() { + global $wpdb; + global $blog_id ; + + SLFramework_Debug::log(get_class(), "Print the configuration page." , 4) ; + + ?> +
    +

    pluginName ?>

    +
    +
    + +

    pluginID) ;?>

    + check_folder_rights( array(array(WP_CONTENT_DIR."/sedlex/test/", "rwx")) ) ; + + $tabs = new SLFramework_Tabs() ; + + ob_start() ; + + // Examples for creating tables + //---------------------------------- + + echo "
    ".__("Tables", $this->pluginID)."
    " ; + $table = new SLFramework_Table() ; + $table->title(array(__("Col1", $this->pluginID), __("Col2", $this->pluginID), __("Col2", $this->pluginID))) ; + + ob_start() ; + echo __("Cell 1-1", $this->pluginID) ; + $cel1 = new adminCell(ob_get_clean()) ; + ob_start() ; + echo __("Cell 1-2", $this->pluginID) ; + $cel2 = new adminCell(ob_get_clean()) ; + ob_start() ; + echo __("Cell 1-3", $this->pluginID) ; + $cel3 = new adminCell(ob_get_clean()) ; + $table->add_line(array($cel1, $cel2, $cel3), '1') ; + + ob_start() ; + echo __("Cell 2-1", $this->pluginID) ; + $cel1 = new adminCell(ob_get_clean()) ; + ob_start() ; + echo __("Cell 2-2", $this->pluginID) ; + $cel2 = new adminCell(ob_get_clean()) ; + ob_start() ; + echo __("Cell 2-3", $this->pluginID) ; + $cel3 = new adminCell(ob_get_clean()) ; + $table->add_line(array($cel1, $cel2, $cel3), '2') ; + + echo $table->flush() ; + + $tabs->add_tab(__('Summary', $this->pluginID), ob_get_clean()) ; + + ob_start() ; + $params = new SLFramework_Parameters($this, "tab-parameters") ; + $params->add_title(__('Title 1', $this->pluginID)) ; + $params->add_param('opt1', __('Modify arg 1:', $this->pluginID)) ; + $params->add_comment(__("This is a comment. The default value is:", $this->pluginID)) ; + $params->add_comment_default_value('opt1') ; + $params->add_param('opt2', __('Modify arg 2:', $this->pluginID)) ; + $params->add_param('opt3', __('Modify arg 3:', $this->pluginID)) ; + $params->add_comment(__('This is another comment.', $this->pluginID)) ; + $params->add_comment(__('The default value is:', $this->pluginID)) ; + $params->add_comment_default_value('opt3') ; + + $params->add_title(__('Title 2', $this->pluginID)) ; + $params->add_param('opt4', __('Modify arg 4:', $this->pluginID)) ; + $params->add_comment(__("This is a comment. The default value is:", $this->pluginID)) ; + $params->add_comment_default_value('opt4') ; + + $params->flush() ; + + $tabs->add_tab(__('Parameters', $this->pluginID), ob_get_clean() , plugin_dir_url("/").'/'.str_replace(basename(__FILE__),"",plugin_basename(__FILE__))."core/img/tab_param.png") ; + + $frmk = new coreSLframework() ; + if (((is_multisite())&&($blog_id == 1))||(!is_multisite())||($frmk->get_param('global_allow_translation_by_blogs'))) { + ob_start() ; + $plugin = str_replace("/","",str_replace(basename(__FILE__),"",plugin_basename( __FILE__))) ; + $trans = new SLFramework_Translation($this->pluginID, $plugin) ; + $trans->enable_translation() ; + $tabs->add_tab(__('Manage translations', $this->pluginID), ob_get_clean() , plugin_dir_url("/").'/'.str_replace(basename(__FILE__),"",plugin_basename(__FILE__))."core/img/tab_trad.png") ; + } + + ob_start() ; + $plugin = str_replace("/","",str_replace(basename(__FILE__),"",plugin_basename( __FILE__))) ; + $trans = new SLFramework_Feedback($plugin, $this->pluginID) ; + $trans->enable_feedback() ; + $tabs->add_tab(__('Give feedback', $this->pluginID), ob_get_clean() , plugin_dir_url("/").'/'.str_replace(basename(__FILE__),"",plugin_basename(__FILE__))."core/img/tab_mail.png") ; + + ob_start() ; + // A list of plugin slug to be excluded + $exlude = array('wp-pirate-search') ; + // Replace sedLex by your own author name + $trans = new SLFramework_OtherPlugins("sedLex", $exlude) ; + $trans->list_plugins() ; + $tabs->add_tab(__('Other plugins', $this->pluginID), ob_get_clean() , plugin_dir_url("/").'/'.str_replace(basename(__FILE__),"",plugin_basename(__FILE__))."core/img/tab_plug.png") ; + + echo $tabs->flush() ; + + + // Before this comment, you may modify whatever you want + //=============================================================================================== + ?> + signature ; ?> +
    + \ No newline at end of file diff --git a/core/templates/readme.txt b/core/templates/readme.txt new file mode 100644 index 0000000..db538e7 --- /dev/null +++ b/core/templates/readme.txt @@ -0,0 +1,34 @@ +=== My Plugin === + +Contributors: Your name +Author: Your name +Author URI: http://www.yourdomain.com +Plugin URI: http://wordpress.org/extend/plugins/my-plugin/ +Tags: plugin +Requires at least: 3.0 +Tested up to: 3.2 +Stable tag: trunk + +The short description + +== Description == + +The long description + +== Installation == + +1. Upload this folder to your plugin directory (for instance '/wp-content/plugins/') +2. Activate the plugin through the 'Plugins' menu in WordPress +3. Navigate to the 'SL plugins' box +4. All plugins developed with the SL core will be listed in this box +5. Enjoy ! + +== Screenshots == + + +== Changelog == + + +== Frequently Asked Questions == + + diff --git a/core/text_diff.class.php b/core/text_diff.class.php new file mode 100644 index 0000000..4194e1c --- /dev/null +++ b/core/text_diff.class.php @@ -0,0 +1,219 @@ +text1 = $text1 ; + $this->text2 = $text2 ; + + $left_lines = explode("\n", $this->text1); + $right_lines = explode("\n", $this->text2); + + $this->text_diff = new Text_Diff($left_lines, $right_lines); + } + + /**==================================================================================================================================================== + * Displays a human readable HTML representation of ALL the text marked with differences . + * + * @return string HTML with differences. + */ + + public function show_all_with_difference() { + $renderer = new Text_Diff_Renderer_inline() ; + $result = $renderer->render($this->text_diff) ; + + $lignes = explode("\n", $result) ; + $del_continue = false ; + $ins_continue = false ; + + $return = "
      \n" ; + + foreach ($lignes as $l) { + $return .= "
    1.  " ; 
      +				
      +				if ($del_continue)
      +					$return .= "" ; 
      +				if ($ins_continue)
      +					$return .= "" ; 
      +				
      +				if (substr_count($l, '')-substr_count($l, '') > 0)  
      +					$del_continue = true ; 
      +				if (substr_count($l, '')-substr_count($l, '') < 0)  
      +					$del_continue = false ; 
      +				if (substr_count($l, '')-substr_count($l, '') > 0)  
      +					$ins_continue = true ; 
      +				if (substr_count($l, '')-substr_count($l, '') < 0)  
      +					$ins_continue = false ; 
      +					
      +				$l = str_replace("", "", $l) ; 
      +				$l = str_replace("", "", $l) ; 
      +				$l = str_replace("", "", $l) ; 
      +				$l = str_replace("", "", $l) ; 
      +				
      +				$return .= $l ; 
      +				
      +				if ($del_continue)
      +					$return .= "" ; 
      +				if ($ins_continue)
      +					$return .= "" ; 
      +				
      +				$return .= "
    2. \n" ; + } + + $return .= "
    \n" ; + + return $return ; + } + + /**==================================================================================================================================================== + * Displays a simple human readable HTML representation of ALL the text marked with differences . + * + * @return string HTML with differences. + */ + + public function show_simple_difference() { + $renderer = new Text_Diff_Renderer_inline() ; + $result = $renderer->render($this->text_diff) ; + + $result = str_replace("", "", $result) ; + $result = str_replace("", "", $result) ; + $result = str_replace("", "", $result) ; + $result = str_replace("", "", $result) ; + + return $result ; + } + + /**==================================================================================================================================================== + * Displays a human readable HTML representation of ONLY the difference between two texts. + * + * @return string HTML with differences. + */ + + public function show_only_difference() { + $renderer = new Text_Diff_Renderer_inline() ; + $result = $renderer->render($this->text_diff) ; + + $lignes = explode("\n", $result) ; + $del_continue = false ; + $ins_continue = false ; + + $first_trois_points = true ; + $next_points = "" ; + + $buffer = array() ; + + foreach ($lignes as $l) { + $l_inti = $l ; + $return = "" ; + if ($del_continue) + $return .= "" ; + if ($ins_continue) + $return .= "" ; + + if (substr_count($l, '')-substr_count($l, '') > 0) + $del_continue = true ; + if (substr_count($l, '')-substr_count($l, '') < 0) + $del_continue = false ; + if (substr_count($l, '')-substr_count($l, '') > 0) + $ins_continue = true ; + if (substr_count($l, '')-substr_count($l, '') < 0) + $ins_continue = false ; + + $l = str_replace("", "", $l) ; + $l = str_replace("", "", $l) ; + $l = str_replace("", "", $l) ; + $l = str_replace("", "", $l) ; + + $return .= $l ; + + if ($del_continue) + $return .= "" ; + if ($ins_continue) + $return .= "" ; + + if ($l_inti != $return) { + $buffer[] = array(true, $return) ; + } else { + $buffer[] = array(false, $return) ; + } + } + + $return = "
      \n" ; + $troispoint = false ; + for ($i=0; $i
       ".$buffer[$i][1]."
      \n" ; + $troispoint = false ; + } else { + if (!$troispoint) { + if ($first_trois_points) { + $return .= "
     ...
    \n" ; + $next_points .="
      \n" ; + $troispoint = true ; + $first_trois_points = false ; + } else { + $return .= "
     ...
    \n" ; + + $next_points .= "
    \n" ; + $next_points .= "
     ...
    " ; + $next_points .="
      \n" ; + $troispoint = true ; + } + } + } + } + if ($next_points=="") + $return .= "
    \n" ; + else + $return .="\n" ; + + return $return ; + } + + } +} + + +?> \ No newline at end of file diff --git a/core/translation.class.php b/core/translation.class.php new file mode 100644 index 0000000..be389ed --- /dev/null +++ b/core/translation.class.php @@ -0,0 +1,1482 @@ +$this->pluginID) + * @param string $plugin the name of the plugin (probably str_replace("/","",str_replace(basename(__FILE__),"",plugin_basename( __FILE__)))) + * @return SLFramework_Translation the SLFramework_Translation object + */ + + function SLFramework_Translation($domain, $plugin) { + $this->domain = $domain ; + $this->plugin = $plugin ; + + if (home_url()=="http://dev.sedlex.fr"){ + $this->update_languages_plugin($domain, $plugin) ; + $this->update_languages_framework() ; + } + } + + /** ==================================================================================================================================================== + * Enable the translation and display the management interface + * Please note that the translators will be able to send you their translation so that you can add them to your repository (the email used is in the header of the main file of your plugin Author Email : name@domain.tld) + * + * @return void + */ + + public function enable_translation() { + require('translation.inc.php') ; + + echo "
    " ; + + $_POST['domain'] = $this->domain ; + $_POST['plugin'] = $this->plugin ; + + // Update pot file if needed !! + SLFramework_Translation::summary_translations() ; + + echo "
    " ; + echo "
    " ; + } + + /** ==================================================================================================================================================== + * Set the language ... according to the configuration + * + * @return void + */ + + public function set_locale($loc) { + $frmk = new coreSLframework() ; + $lan = $frmk->get_param('lang') ; + if (is_admin() && ($lan != "")) { + $loc = $lan ; + SLFramework_Debug::log(get_class(), "Set locale from ".$loc." to ".$lan."", 4) ; + } + return $loc; + } + + + /** ==================================================================================================================================================== + * Search the plugin directory for the php files + * + * @access private + * @param string $root the root folder from which the php file are to be searched + * @return array list of the php files + */ + + static function get_php_files($root, $other='') { + + @chmod($root."/".$other, 0755) ; + $dir=@scandir($root."/".$other); + + $folder = array() ; + $php = array() ; + + foreach($dir as $f) { + if (is_dir($root."/".$other.$f)) { + if (preg_match("/^[^.].*/i", $f)) { + if (!preg_match("/^templates/i", $f)) { + $folder[] = $other.$f ; + } + } + } + if (is_file($root."/".$other.$f)) { + if (preg_match("/^[^.].*\.php/i", $f)) { + $php[] = $other.$f ; + } + } + } + + foreach ($folder as $f) { + $php = array_merge($php, SLFramework_Translation::get_php_files($root, $f."/")) ; + } + return $php ; + } + + + /** ==================================================================================================================================================== + * Callback function for displaying the summary of translation from javascript + * + * @access private + * @return void + */ + + static function update_summary () { + SLFramework_Translation::summary_translations() ; + die() ; + } + + /** ==================================================================================================================================================== + * Displaying the summary of translation + * + * @access private + * @return void + */ + + static function summary_translations () { + $domain = preg_replace("/[^a-zA-Z0-9_-]/","",$_POST['domain']) ; + $plugin = preg_replace("/[^a-zA-Z0-9_-]/","",$_POST['plugin']) ; + require('translation.inc.php') ; + + $language = get_locale() ; + if ($language == "") + $language = "en_US" ; + echo "

    ".__("Here, you may configure three levels of translations: at the plugin level, at the framework level, and at the dashboard level.", "SL_framework")."

    " ; + + echo "
    " ; + + if (isset($code_locales[$language])) { + $native = $code_locales[$language]['lang-native']." ($language)" ; + } else if (isset($language_names[$language])){ + $native = $language_names[$language]['lang-native']." ($language)" ; + } else { + $native = "$language" ; + } + + echo "

    ".sprintf(__("Please be informed that your current language is %s. Text will be translated if a translation is available.", "SL_framework"), "$native")."

    " ; + echo "

    ".sprintf(__("If you want to modify the language, please go in %s and find %s or %s. The second argument is your language and you may modify it as you want.", "SL_framework"), "wp-config.php", "define('WPLANG', '');", "define('WPLANG', '".$language."');")."

    " ; + + if ($domain!="SL_framework") { + ob_start() ; + SLFramework_Translation::installed_languages_plugin($domain, $plugin) ; + $bloc = new SLFramework_Box (sprintf(__("Translations available for this plugin (i.e. %s)", "SL_framework"), $plugin), ob_get_clean()) ; + echo $bloc->flush() ; + } + + ob_start() ; + SLFramework_Translation::installed_languages_framework($domain, $plugin) ; + $plugin_frame = explode("/",plugin_basename(__FILE__)); + $plugin_frame = $plugin_frame[0]; + $bloc = new SLFramework_Box (sprintf(__("Translations available for the SL framework (stored in %s)", "SL_framework"), $plugin_frame), ob_get_clean()) ; + echo $bloc->flush() ; + + } + + + /** ==================================================================================================================================================== + * Callback function for adding a new translation + * + * @access private + * @return void + */ + + static function translate_add () { + ob_start() ; + require('translation.inc.php') ; + // We sanitize the language + $code = preg_replace("/[^a-zA-Z_]/","",$_POST['idLink']) ; + $domain = preg_replace("/[^a-zA-Z0-9_-]/","",$_POST['domain']) ; + $plugin = preg_replace("/[^a-zA-Z0-9_-]/","",$_POST['plugin']) ; + $isFramework = $_POST['isFramework'] ; + $native = $code_locales[$code]['lang-native'] ; + + $plugin_lien = $plugin ; + + echo "

    ".sprintf(__('Adding a new translation for this language: %s','SL_framework'),"$native ($code)")."

    " ; + + // Create the table + $table = new SLFramework_Table() ; + $table->title (array(__('Sentence to translate','SL_framework'), __('Translation','SL_framework'))) ; + $table->removeFooter() ; + if ($isFramework!='false') { + if (is_file(WP_PLUGIN_DIR."/".$isFramework."/core/lang/SL_framework.pot")) { + $content_pot = file(WP_PLUGIN_DIR."/".$isFramework."/core/lang/SL_framework.pot") ; + } else { + $content_pot = array() ; + } + } else { + if (is_file(WP_PLUGIN_DIR."/".$plugin."/lang/".$domain .".pot")) { + $content_pot = file(WP_PLUGIN_DIR."/".$plugin."/lang/".$domain .".pot") ; + } else { + $content_pot = array() ; + } + } + $i=0 ; + foreach ($content_pot as $ligne) { + if (preg_match("/^msgid \\\"(.*)\\\"$/", trim($ligne), $match)) { + $cel1 = new adminCell("

    ".($i+1).") ".htmlentities($match[1])."

    ") ; + $cel2 = new adminCell("") ; + $table->add_line(array($cel1, $cel2), '1') ; + $i++ ; + } + } + echo $table->flush() ; + + $options = get_option('SL_framework_options'); + echo "

    ".__('Your name:','SL_framework')." ".__('(if your name/pseudo is already in the list, there is no need to fill this input)','SL_framework')."

    " ; + echo "

    ".__('Your email or your website:','SL_framework')."

    " ; + + echo "" ; + $x = plugin_dir_url("/").'/'.str_replace(basename(__FILE__),"",plugin_basename(__FILE__)) ; + echo "" ; + + $content = ob_get_clean() ; + $popup = new SLFramework_Popup (__("Add a new translation", 'SL_framework'), $content) ; + echo $popup->render() ; + + //Die in order to avoid the 0 character to be printed at the end + die() ; + } + + /** ==================================================================================================================================================== + * Callback function for modifying a translation + * + * @access private + * @return void + */ + + static function translate_modify () { + + ob_start() ; + require('translation.inc.php') ; + // We sanitize the language + $lang = preg_replace("/[^a-zA-Z_]/","",$_POST['lang']) ; + $domain = preg_replace("/[^a-zA-Z0-9_-]/","",$_POST['domain']) ; + $plugin = preg_replace("/[^a-zA-Z0-9_-]/","",$_POST['plugin']) ; + $actionOnClose = preg_replace("/[^a-zA-Z0-9_-]/","",$_POST['actionOnClose']) ; + $native = $code_locales[$lang]['lang-native'] ; + $isFramework = $_POST['isFramework'] ; + + $plugin_lien = $plugin ; + + echo "

    ".sprintf(__('Modifying the translation for this language: %s','SL_framework'), "$native ($lang)")."

    " ; + + // Create the table + $table = new SLFramework_Table() ; + $table->title (array(__('Sentence to translate','SL_framework'), __('Translation','SL_framework'))) ; + $table->removeFooter() ; + if ($isFramework!='false') { + $content_pot = file(WP_PLUGIN_DIR."/".$isFramework."/core/lang/SL_framework.pot") ; + $content_po = file(WP_PLUGIN_DIR."/".$isFramework."/core/lang/SL_framework-".$lang.".po") ; + } else { + $content_pot = file(WP_PLUGIN_DIR."/".$plugin."/lang/".$domain .".pot") ; + $content_po = file(WP_PLUGIN_DIR."/".$plugin."/lang/".$domain ."-".$lang.".po") ; + } + + $i=0 ; + + // We build an array with all the sentences for pot + $pot_array = array() ; + foreach ($content_pot as $ligne_pot) { + if (preg_match("/^msgid \\\"(.*)\\\"$/", trim($ligne_pot), $match)) { + $pot_array[sha1(trim($match[1]))] = trim($match[1]) ; + } + } + + // We build an array with all the sentences for po + $po_array = array() ; + $msgid = "" ; + foreach ($content_po as $ligne_po) { + if (preg_match("/^msgid \\\"(.*)\\\"$/", trim($ligne_po), $match)) { + $msgid = $match[1] ; + } else if (preg_match("/^msgstr \\\"(.*)\\\"$/", trim($ligne_po), $match)) { + if (trim($match[1])!="") { + $po_array[sha1(trim($msgid))] = array(trim($msgid),trim($match[1])) ; + } + } + } + + $i=0 ; + + // We display text translation + foreach ($pot_array as $md5 => $ligne) { + if (!isset($po_array[$md5])) { + $cel1 = new adminCell("

    ".($i+1).") ".htmlentities($ligne)."

    ") ; + // We search for the levenstein match between the pot and the po file + $close = "" ; + foreach ($po_array as $ligne_po) { + //if ($ligne!=$ligne_po[0]) { + $cl = levenshtein ($ligne, $ligne_po[0]) ; + if ($cl/strlen($ligne)*100 < 10) { + if ($close=="") + $close .= $ligne_po[1] ; + else + $close .= " / ". $ligne_po[1] ; + } + //} + } + if ($close=="") + $cel2 = new adminCell("") ; + else + $cel2 = new adminCell("

    ".$close."

    ") ; + $table->add_line(array($cel1, $cel2), '1') ; + $i++ ; + } else { + list($text,$value) = $po_array[$md5] ; + // Convert the value in UTF8 if needed + if (!seems_utf8($value)) { + $value = utf8_encode($value) ; + } + // Count %s + $count1 = substr_count($text, "%s") ; + $count2 = substr_count($value, "%s") ; + + if (($count1==$count2)||(trim($value)=="")) { + $cel1 = new adminCell("

    ".($i+1).") ".htmlentities($ligne)."

    ") ; + } else { + $cel1 = new adminCell("

    ".($i+1).") ".htmlentities($ligne)."

    ".__('The number of occurrence of %s does not match in both string. Please note that the string %s will be replaced with a contextual string.','SL_framework')."

    ") ; + } + $cel2 = new adminCell("") ; + $table->add_line(array($cel1, $cel2), '1') ; + $i++ ; + } + } + + + echo $table->flush() ; + + $options = get_option('SL_framework_options'); + echo "

    ".__('Your name:','SL_framework')."

    " ; + echo "

    ".__('Your email or your website:','SL_framework')."

    " ; + + if ($actionOnClose == "") { + echo "" ; + } else { + echo "" ; + } + $x = plugin_dir_url("/").'/'.str_replace(basename(__FILE__),"",plugin_basename(__FILE__)) ; + echo "" ; + + $content = ob_get_clean() ; + $popup = new SLFramework_Popup (__("Modify translations", 'SL_framework'), $content) ; + echo $popup->render() ; + //Die in order to avoid the 0 character to be printed at the end + die() ; + } + + /** ==================================================================================================================================================== + * Get the relevant info on a po file + * + * $param array $content_po array of line of the file .po + * $param array $content_pot array of line of the file .pot + * @access private + * @return array + */ + + static function get_info($content_po, $content_pot) { + // We search in the pot file to check if all sentences are translated + $count = 0 ; + $count_close = 0 ; + $all_count = 0 ; + $suivant_a_verifier = false ; + + // We build an array with all the sentences for pot + $pot_array = array() ; + foreach ($content_pot as $ligne_pot) { + if (preg_match("/^msgid \\\"(.*)\\\"$/", trim($ligne_pot), $match)) { + $pot_array[sha1(trim($match[1]))] = trim($match[1]) ; + $all_count ++ ; + } + } + + // We build an array with all the sentences for po + $po_array = array() ; + $msgid = "" ; + foreach ($content_po as $ligne_po) { + if (preg_match("/^msgid \\\"(.*)\\\"$/", trim($ligne_po), $match)) { + $msgid = $match[1] ; + } else if (preg_match("/^msgstr \\\"(.*)\\\"$/", trim($ligne_po), $match)) { + if (trim($match[1])!="") { + $po_array[sha1(trim($msgid))] = array(trim($msgid),trim($match[1])) ; + if (isset($pot_array[sha1(trim($msgid))])) { + $count ++ ; + } + } + } + } + + + // We search for the levenstein match between the pot and the po file + foreach ($pot_array as $ligne_pot) { + $trouve = false ; + foreach ($po_array as $ligne_po) { + if (!isset($pot_array[sha1($ligne_po[0])])) { + $cl = levenshtein ($ligne_pot, $ligne_po[0]) ; + if ($cl/strlen($ligne_pot)*100 < 10) { + $count_close ++ ; + } + } + } + } + + $translators = "" ; + foreach ($content_po as $ligne_po) { + if (preg_match("/Last-Translator: (.*) \<(.*)\>/", trim($ligne_po), $match)) { + if ($translators != "") + $translators .= ", " ; + $translators .= trim($match[1]) ; + if (trim($match[2])!="") { + $mail = trim($match[2]) ; + if (preg_match("#^[a-z0-9-_.]+@[a-z0-9-_.]{2,}\.[a-z]{2,4}$#", $mail)) + $translators .= " <".$mail.">" ; + elseif (preg_match("#http://[a-z0-9._/-]+\.[a-z]{2,4}+([a-zA-Z0-9._/-=&?!]+)*#i", $mail)) + $translators .= " (his website)" ; + elseif (preg_match("#[a-z0-9._/-]+\.[a-z]{2,4}+([a-zA-Z0-9._/-=&?!]+)*#i", $mail)) + $translators .= " (his website)" ; + else + $translators .= " <".htmlentities($mail).">" ; + } + } + } + $return['total'] = $all_count ; + $return['translated'] = $count ; + $return['close'] = $count_close ; + $return['translators'] = $translators ; + + return $return ; + } + + /** ==================================================================================================================================================== + * Compare two po file to get the relevant info + * + * $param array $content_po1 array of line of the file new .po + * $param array $content_po2 array of line of the file old .po + * $param array $content_pot array of line of the file .pot + * @access private + * @return void + */ + + static function compare_info($content_po1, $content_po2, $content_pot) { + // We search in the pot file to check if all sentences are translated + $new = 0 ; + $modified = 0 ; + $all_count = 0 ; + $suivant_a_verifier = false ; + + // We build an array with all the sentences for pot + $pot_array = array() ; + foreach ($content_pot as $ligne_pot) { + if (preg_match("/^msgid \\\"(.*)\\\"$/", trim($ligne_pot), $match)) { + $pot_array[sha1(trim($match[1]))] = trim($match[1]) ; + $all_count ++ ; + } + } + + // We build an array with all the sentences for old po + $po2_array = array() ; + $msgid = "" ; + foreach ($content_po2 as $ligne_po) { + if (preg_match("/^msgid \\\"(.*)\\\"$/", trim($ligne_po), $match)) { + $msgid = $match[1] ; + } else if (preg_match("/^msgstr \\\"(.*)\\\"$/", trim($ligne_po), $match)) { + if (trim($match[1])!="") { + $po2_array[sha1(trim($msgid))] = array(trim($msgid),trim($match[1])) ; + } + } + } + + // We build an array with all the sentences for new po + $po1_array = array() ; + $msgid = "" ; + foreach ($content_po1 as $ligne_po) { + if (preg_match("/^msgid \\\"(.*)\\\"$/", trim($ligne_po), $match)) { + $msgid = $match[1] ; + } else if (preg_match("/^msgstr \\\"(.*)\\\"$/", trim($ligne_po), $match)) { + if (trim($match[1])!="") { + $po1_array[sha1(trim($msgid))] = array(trim($msgid),trim($match[1])) ; + if (isset($pot_array[sha1(trim($msgid))])) { + if (isset($po2_array[sha1(trim($msgid))])) { + if ($po2_array[sha1(trim($msgid))][1]!=$po1_array[sha1(trim($msgid))][1]) { + $modified++ ; + } + } else { + $new++ ; + } + } + } + } + } + + $return['total'] = $all_count ; + $return['new'] = $new ; + $return['modified'] = $modified ; + + return $return ; + } + + + + /** ==================================================================================================================================================== + * Send the translation to the author of the plugin + * + * @access private + * @return void + */ + static function send_translation() { + ob_start() ; + require('translation.inc.php') ; + // We sanitize the language + $lang = preg_replace("/[^a-zA-Z_]/","",$_POST['lang']) ; + $domain = preg_replace("/[^a-zA-Z0-9_-]/","",$_POST['domain']) ; + $isFramework = $_POST['isFramework'] ; + $plugin = preg_replace("/[^a-zA-Z0-9_-]/","",$_POST['plugin']) ; + $native = $code_locales[$lang]['lang-native'] ; + + $plugin_lien = $plugin ; + + $info_file = pluginSedLex::get_plugins_data(WP_PLUGIN_DIR."/".$plugin."/".$plugin.".php") ; + if ($isFramework!='false') { + $to = $info_file['Framework_Email'] ; + } else { + $to = $info_file['Email'] ; + } + if ($isFramework!='false') { + $subject = "[Framework] New translation (".$lang.")" ; + $info = SLFramework_Translation::get_info(file(WP_PLUGIN_DIR."/".$isFramework."/core/lang/SL_framework-".$lang.".po"), file(WP_PLUGIN_DIR."/".$isFramework."/core/lang/SL_framework.pot")) ; + } else { + $subject = "[".ucfirst($plugin)."] New translation (".$lang.")" ; + $info = SLFramework_Translation::get_info(file(WP_PLUGIN_DIR."/".$plugin."/lang/".$domain ."-".$lang.".po"), file(WP_PLUGIN_DIR."/".$plugin."/lang/".$domain.".pot")) ; + } + + $message = "" ; + $message .= "

    "."Dear sirs,"."

     

    " ; + $message .= "

    "."Here is attached a new translation ($native)"."

     

    " ; + if ($info['close']==0) { + $message .= "

    ".(sprintf(__("%s sentences have been translated (i.e. %s).",'SL_framework'), "".$info['translated']."/".$info['total']."", "".(floor($info['translated']/$info['total']*1000)/10)."%"))."

    " ; + } else { + $message .= "

    ".(sprintf(__("%s sentences have been translated (i.e. %s) %s %s sentences have to be checked because they are close (but not identical) to those to translate.%s",'SL_framework'), "".$info['translated']."/".$info['total']."", "".(floor($info['translated']/$info['total']*1000)/10)."%", "", $info['close'], ""))."

    " ; + } + $message .= "

    "."Translators: ".$info['translators']."

     

    " ; + $message .= "

    "."Best regards,"."

     

    " ; + + + $message .= "

    "."* Accounts *

    " ; + $message .= "

    "."****************************************

    " ; + $admin = get_userdata(1); + $message .= "

    "."Admin User Name: " . $admin->display_name ."

    " ; + $message .= "

    "."Admin User Login: " . $admin->user_login."

    " ; + $message .= "

    "."Admin User Mail: " . $admin->user_email."

    " ; + $current_user = wp_get_current_user(); + $message .= "

    "."Logged User Name: " . $current_user->display_name ."

    " ; + $message .= "

    "."Logged User Login: " . $current_user->user_login."

    " ; + $message .= "

    "."Logged User Mail: " . $current_user->user_email."

    " ; + + + $headers= "MIME-Version: 1.0\n" . + "Content-Type: text/html; charset=\"" . + get_option('blog_charset') . "\"\n"; + + if ($isFramework!='false') { + $attachments = array(WP_PLUGIN_DIR."/".$isFramework."/core/lang/SL_framework-".$lang.".po",WP_PLUGIN_DIR."/".$isFramework."/core/lang/SL_framework-".$lang.".mo"); + } else { + $attachments = array(WP_PLUGIN_DIR."/".$plugin."/lang/".$domain ."-".$lang.".po",WP_PLUGIN_DIR."/".$plugin."/lang/".$domain ."-".$lang.".mo"); + } + // send the email + if (wp_mail( $to, $subject, $message, $headers, $attachments )) { + SLFramework_Debug::log(get_class(), "Send the translation ".$attachments[0]." to ".$to, 4) ; + echo "
    " ; + echo "

    ".sprintf(__("The translation %s have been sent", 'SL_framework'), "$lang ($native)")."

    " ; + echo "
    " ; + } else { + SLFramework_Debug::log(get_class(), "The translation ".$attachments[0]." cannot be send to ".$to, 2) ; + echo "
    " ; + echo "

    ".__("An error occured sending the email.", 'SL_framework')."

    ".__("Make sure that your wordpress is able to send email.", 'SL_framework')."

    " ; + echo "
    " ; + } + + $content = ob_get_clean() ; + $popup = new SLFramework_Popup (__("Send translation", 'SL_framework'), $content) ; + echo $popup->render() ; + + //Die in order to avoid the 0 character to be printed at the end + die() ; + } + + /** ==================================================================================================================================================== + * Callback function for create a new translation + * + * @access private + * @return void + */ + + static function translate_create () { + require('translation.inc.php') ; + + $domain = preg_replace("/[^a-zA-Z0-9_-]/","",$_POST['domain']) ; + $plugin = preg_replace("/[^a-zA-Z0-9_-]/","",$_POST['plugin']) ; + $lang = preg_replace("/[^a-zA-Z_]/","",$_POST['lang']) ; + $name = preg_replace("/[^a-zA-Z0-9_.-]/","",$_POST['name']) ; + $email = preg_replace("/[^:\/a-z0-9@A-Z_.-=&?!-]/","",$_POST['email']) ; + $isFramework = $_POST['isFramework'] ; + + $plugin_lien = $plugin ; + + if ($isFramework!='false') { + $plugin = explode("/",str_replace(basename( __FILE__),"",plugin_basename(__FILE__))); + $plugin = $plugin[0] ; + $path = WP_PLUGIN_DIR."/".$plugin ; + } + + $trad = $_POST['idLink']; + + $options = get_option('SL_framework_options'); + $options['nameTranslator'] = $name ; + $options['emailTranslator'] = $email ; + update_option('SL_framework_options', $options); + + // We generate a new PO file + $old_po = array() ; + $delete = false ; + if ($isFramework!='false') { + if (is_file(WP_PLUGIN_DIR."/".$isFramework."/core/lang/SL_framework-".$lang.".po")) { + $old_po = file(WP_PLUGIN_DIR."/".$isFramework."/core/lang/SL_framework-".$lang.".po") ; + unlink(WP_PLUGIN_DIR."/".$isFramework."/core/lang/SL_framework-".$lang.".po") ; + unlink(WP_PLUGIN_DIR."/".$isFramework."/core/lang/SL_framework-".$lang.".mo") ; + $delete = true ; + } + } else { + if (is_file(WP_PLUGIN_DIR."/".$plugin."/lang/".$domain ."-".$lang.".po")) { + $old_po = file(WP_PLUGIN_DIR."/".$plugin."/lang/".$domain ."-".$lang.".po") ; + unlink(WP_PLUGIN_DIR."/".$plugin."/lang/".$domain ."-".$lang.".po") ; + unlink(WP_PLUGIN_DIR."/".$plugin."/lang/".$domain ."-".$lang.".mo") ; + $delete = true ; + } + } + + if ($isFramework!='false') { + $handle = @fopen(WP_PLUGIN_DIR."/".$isFramework."/core/lang/SL_framework-".$lang.".po", "wb"); + } else { + $handle = @fopen(WP_PLUGIN_DIR."/".$plugin."/lang/".$domain ."-".$lang.".po", "wb"); + } + $content = "" ; + $content .= "msgid \"\"\n" ; + $content .= "msgstr \"\"\n" ; + $content .= "\"Generated: SL Framework (http://www.sedlex.fr)\\n\"\n"; + $content .= "\"Project-Id-Version: \\n\"\n"; + $content .= "\"Report-Msgid-Bugs-To: \\n\"\n"; + $content .= "\"POT-Creation-Date: \\n\"\n"; + $content .= "\"PO-Revision-Date: ".date("c")."\\n\"\n"; + if (trim($name)!="") { + $found = false ; + foreach ($old_po as $ligne_po) { + if (preg_match("/Last-Translator: (.*) \<(.*)\>/", trim($ligne_po), $match)) { + if ($match[1]==$name){ + $found = true ; + } + } + } + if (!$found) + $content .= "\"Last-Translator: ".$name." <".$email.">\\n\"\n"; + } + foreach ($old_po as $ligne_po) { + if (preg_match("/Last-Translator: (.*) \<(.*)\>/", trim($ligne_po), $match)) { + $content .= "\"Last-Translator: ".$match[1]." <".$match[2].">\\n\"\n"; + } + } + $content .= "\"Language-Team: \\n\"\n"; + $content .= "\"MIME-Version: 1.0\\n\"\n"; + $content .= "\"Content-Type: text/plain; charset=UTF-8\\n\"\n"; + $content .= "\"Content-Transfer-Encoding: 8bit\\n\"\n"; + $plurals = "" ; + foreach($countries as $code => $array) { + if (array_search($lang, $array)!==false) { + $plurals = $csp_l10n_plurals[$code] ; + } + } + $content .= "\"Plural-Forms: ".$plurals."\\n\"\n"; + $content .= "\"X-Poedit-Language: ".$code_locales[$lang]['lang']."\\n\"\n"; + $content .= "\"X-Poedit-Country: ".$code_locales[$lang]['country']."\\n\"\n"; + $content .= "\"X-Poedit-SourceCharset: utf-8\\n\"\n"; + $content .= "\"X-Poedit-KeywordsList: __;\\n\"\n"; + $content .= "\"X-Poedit-Basepath: \\n\"\n"; + $content .= "\"X-Poedit-Bookmarks: \\n\"\n"; + $content .= "\"X-Poedit-SearchPath-0: .\\n\"\n"; + $content .= "\"X-Textdomain-Support: yes\\n\"\n\n" ; + fwrite($handle, $content); + if ($isFramework!='false') { + if (is_file(WP_PLUGIN_DIR."/".$isFramework."/core/lang/SL_framework.pot")) { + $content_pot = file(WP_PLUGIN_DIR."/".$isFramework."/core/lang/SL_framework.pot") ; + } else { + $content_pot=array() ; + } + } else { + if (is_file(WP_PLUGIN_DIR."/".$plugin."/lang/".$domain .".pot")) { + $content_pot = file(WP_PLUGIN_DIR."/".$plugin."/lang/".$domain .".pot") ; + } else { + $content_pot=array() ; + } + } + $i=0 ; + + $hash = array() ; + + $nb_real_entries = 0 ; + foreach ($content_pot as $ligne) { + if (preg_match("/^#(.*)$/", trim($ligne), $match)) { + $content .= $match[0]."\n" ; + } + if (preg_match("/^msgid \\\"(.*)\\\"$/", trim($ligne), $match)) { + fwrite($handle,'msgid "'.$match[1].'"'."\n" ); + + $trad[$i] = stripslashes($trad[$i]) ; + $to_store = htmlspecialchars(htmlspecialchars_decode($trad[$i], ENT_QUOTES), ENT_QUOTES) ; + $to_store = str_replace(">", ">", $to_store) ; + $to_store = str_replace("<", "<", $to_store) ; + $to_store = str_replace("% s", " %s ", $to_store) ; + $to_store = str_replace(" ", " ", $to_store) ; + + fwrite($handle,'msgstr "'.$to_store.'"'."\n\n") ; + if ($trad[$i]!="") { + $hash[] = array('msgid' => $match[1], 'msgstr' => htmlspecialchars(htmlspecialchars_decode($trad[$i], ENT_QUOTES), ENT_QUOTES) ) ; + $nb_real_entries ++ ; + } + $i++ ; + } + } + fclose($handle); + + if ($nb_real_entries==0) { + SLFramework_Translation::summary_translations() ; + + echo "
    " ; + echo "

    ".sprintf(__("%s file cannot be created for %s as there is no translated sentence. Please, translate at least one sentence to create a file", 'SL_framework'), "SL_framework-".$lang.".po", $code_locales[$lang]['lang-native'])."

    " ; + echo "
    " ; + } else { + // We convert into a new MO file + if ($isFramework!='false') { + SLFramework_Translation::phpmo_write_mo_file($hash,WP_PLUGIN_DIR."/".$isFramework."/core/lang/SL_framework-".$lang.".mo") ; + } else { + SLFramework_Translation::phpmo_write_mo_file($hash,WP_PLUGIN_DIR."/".$plugin."/lang/".$domain ."-".$lang.".mo") ; + } + + SLFramework_Translation::summary_translations() ; + } + + ob_start() ; + echo "
    " ; + if ($delete==true) { + if ($isFramework!='false') { + echo "

    ".sprintf(__("%s file has been updated for %s", 'SL_framework'), "SL_framework-".$lang.".po", $code_locales[$lang]['lang-native'])."

    " ; + echo "

    ".sprintf(__("%s file has been updated from this file", 'SL_framework'), "SL_framework-".$lang.".mo")."

    " ; + } else { + echo "

    ".sprintf(__("%s file has been updated for %s", 'SL_framework'), "".$domain ."-".$lang.".po", $code_locales[$lang]['lang-native'])."

    " ; + echo "

    ".sprintf(__("%s file has been updated from this file", 'SL_framework'), "".$domain ."-".$lang.".mo")."

    " ; + } + } else { + if ($isFramework!='false') { + echo "

    ".sprintf(__("%s file has been created with a new translation for %s", 'SL_framework'), "SL_framework-".$lang.".po", $code_locales[$lang]['lang-native'])."

    " ; + echo "

    ".sprintf(__("%s file has been created from this file", 'SL_framework'), "SL_framework-".$lang.".mo")."

    " ; + } else { + echo "

    ".sprintf(__("%s file has been created with a new translation for %s", 'SL_framework'), "".$domain ."-".$lang.".po", $code_locales[$lang]['lang-native'])."

    " ; + echo "

    ".sprintf(__("%s file has been created from this file", 'SL_framework'), "".$domain ."-".$lang.".mo")."

    " ; + } + } + + // We propose to send the translation + + $info_file = pluginSedLex::get_plugins_data(WP_PLUGIN_DIR."/".$plugin."/".$plugin.".php") ; + $isEmailAuthor = false ; + if ($isFramework!='false') { + if (preg_match("#^[a-z0-9-_.]+@[a-z0-9-_.]{2,}\.[a-z]{2,4}$#",$info_file['Framework_Email'])) { + $isEmailAuthor = true ; + } + } else { + if (preg_match("#^[a-z0-9-_.]+@[a-z0-9-_.]{2,}\.[a-z]{2,4}$#",$info_file['Email'])) { + $isEmailAuthor = true ; + } + } + if ($isEmailAuthor=="true") { + $url_to_send ="" ; + $url_to_send2 ="" ; + echo "

    ".sprintf(__("If you do not want to loose your translations on the next upgrading of this plugin, it is recommended to send the translation files to the author by clicking %s here %s !", 'SL_framework'), $url_to_send, $url_to_send2)."

    "; + } else { + echo "

    ".__("If you do not want to loose your translations on the next upgrading of this plugin, please save them on your hard disk before upgrading and then restore them after the upgrade !", 'SL_framework')."

    "; + } + + echo "
    " ; + + $content = ob_get_clean() ; + $popup = new SLFramework_Popup (__("Confirmation", 'SL_framework'), $content) ; + echo $popup->render() ; + + //Die in order to avoid the 0 character to be printed at the end + die() ; + } + + /** ==================================================================================================================================================== + * Write a GNU gettext style machine object + * byte + * +-----------------------------------------------+ + * 0 | magic number = 0x950412de | + * | | + * 4 | file format revision = 0 | + * | | + * 8 | number of strings | == N + * | | + * 12 | offset of table with original strings | == O + * | | + * 16 | offset of table with translation strings | == T + * | | + * 20 | size of hashing table | == S + * | | + * 24 | offset of hashing table | == H + * | | + * . . + * . (possibly more entries later) . + * . . + * | | + * O | length & offset 0th string ----------------. + * O + 8 | length & offset 1st string ------------------. + * ... ... | | + * O + ((N-1)*8)| length & offset (N-1)th string | | | + * | | | | + * T | length & offset 0th translation ---------------. + * T + 8 | length & offset 1st translation -----------------. + * ... ... | | | | + * T + ((N-1)*8)| length & offset (N-1)th translation | | | | | + * | | | | | | + * H | start hash table | | | | | + * ... ... | | | | + * H + S * 4 | end hash table | | | | | + * | | | | | | + * | NUL terminated 0th string <----------------' | | | + * | | | | | + * | NUL terminated 1st string <------------------' | | + * | | | | + * ... ... | | + * | | | | + * | NUL terminated 0th translation <--------------' | + * | | | + * | NUL terminated 1st translation <-----------------' + * | | + * ... ... + * | | + * +-----------------------------------------------+ + * @access private + * @param array $hash the hash of the po file + * @param string $out path to the mo file + * @return void + */ + + static function phpmo_write_mo_file($hash, $out) { + // sort by msgid + ksort($hash, SORT_STRING); + // our mo file data + $mo = ''; + // header data + $offsets = array (); + $ids = ''; + $strings = ''; + + foreach ($hash as $entry) { + $offsets[] = array (strlen($ids), strlen($entry['msgid']), strlen($strings), strlen($entry['msgstr'])); + $ids .= $entry['msgid']. "\x00"; + $strings .= $entry['msgstr'] . "\x00"; + } + + // keys start after the header (7 words) + index tables ($#hash * 4 words) + $key_start = 7 * 4 + sizeof($hash) * 4 * 4; + // values start right after the keys + $value_start = $key_start +strlen($ids); + // first all key offsets, then all value offsets + $key_offsets = array (); + $value_offsets = array (); + // calculate + foreach ($offsets as $v) { + list ($o1, $l1, $o2, $l2) = $v; + $key_offsets[] = $l1; + $key_offsets[] = $o1 + $key_start; + $value_offsets[] = $l2; + $value_offsets[] = $o2 + $value_start; + } + $offsets = array_merge($key_offsets, $value_offsets); + + // write header + $mo .= pack('Iiiiiii', 0x950412de, // magic number + 0, // version + count($hash), // number of entries in the catalog + 7 * 4, // key index offset + 7 * 4 + count($hash) * 8, // value index offset, + 0, // hashtable size (unused, thus 0) + $key_start // hashtable offset + ); + + // offsets + foreach ($offsets as $offset) + $mo .= pack('i', $offset); + // ids + $mo .= $ids; + // strings + $mo .= $strings; + + file_put_contents($out, $mo); + } + + + /** ==================================================================================================================================================== + * Update the language installed for this plugin + * + * @access private + * @return void + */ + + static function update_languages_plugin($domain, $plugin) { + $path = WP_PLUGIN_DIR."/".$plugin ; + if ($domain=="SL_framework") { + return ; + } + + // We create the lang dir + if (!is_dir($path."/lang/")) { + mkdir($path."/lang/", 0777, true) ; + } + + // We check if the .pot file exist + if (is_file($path."/lang/".$domain .".pot")) { + // We delete the file + @unlink($path."/lang/".$domain .".pot"); + } + // We generate a new POT file + $content = "Content-Transfer-Encoding: 8bit\n\n" ; + $php = SLFramework_Translation::get_php_files($path) ; + + foreach ($php as $f) { + $lines = file($path."/".$f) ; + + $i = 0 ; + foreach($lines as $l) { + $i++ ; + $match_array = array("@__[ ]*\([ ]*\\\"([^\\\"]*)\\\"([^)]*)this->pluginID\)@", + "@__[ ]*\([ ]*'([^']*)'([^)]*)this->pluginID\)@") ; + foreach ($match_array as $reg) { + if (preg_match_all($reg,$l, $match,PREG_SET_ORDER)) { + foreach($match as $m) { + $val[0] = trim($m[1]) ; + $pos = strpos($content,'msgid "'.$val[0].'"') ; + if ($pos===false) { + // We translate only the text of the domain of the plugin + $content .= "#: ".$f.":".$i."\n" ; + $content .= "#@ ".$domain."\n" ; // domain + $value = $val[0] ; + // If the string is between simple quote, we escape the double quote + if ($reg==$match_array[1]) + $value = str_replace("\"", "\\\"",$val[0]) ; + $content .= 'msgid "'.$value.'"'."\n" ; + $content .= 'msgstr ""'."\n\n" ; + } else { + // If the text is already in the POT file, we only add the line number and the file + $temp = explode("#@ ".$domain."\n".'msgid "'.$val[0].'"'."\n", $content) ; + $content = $temp[0]."#: ".$f.":".$i."\n"."#@ ".$domain."\n".'msgid "'.$val[0].'"'."\n".$temp[1] ; + } + } + } + } + } + } + SLFramework_Debug::log(get_class(), "The file ".$path."/lang/".$domain .".pot has been downloaded", 4) ; + @file_put_contents($path."/lang/".$domain .".pot", $content) ; + } + + /** ==================================================================================================================================================== + * List all the language installed for this plugin + * + * @access private + * @return void + */ + + static function installed_languages_plugin($domain, $plugin) { + require('translation.inc.php') ; + + $path = WP_PLUGIN_DIR."/".$plugin ; + + $plugin_lien = $plugin; + + @chmod($path."/lang/", 0755) ; + $dir = @scandir($path."/lang/"); + $dom = $domain ; + + $file = array() ; + $signature_files = array() ; + + foreach($dir as $item) { + if ('.' == $item || '..' == $item) + continue; + if (preg_match("/([a-z]{2}_[A-Z]{2})\.mo$/", $item, $h)) { + $file[] = $h[1]; + $signature_files[] = $domain."-".$h[1].".mo".filesize($path."/lang/".$domain."-".$h[1].".mo") ; + } + } + + if (!in_array('en_US', $file)) $file[] = 'en_US'; + sort($file); + + sort($signature_files); + $signature_files = get_locale().implode('', $signature_files) ; + $signature_files = sha1($signature_files); + + $nb = count($file) ; + if (!is_dir(WP_CONTENT_DIR."/sedlex/translations/")) { + @mkdir(WP_CONTENT_DIR."/sedlex/translations/", 0777, true) ; + } + if (is_file(WP_CONTENT_DIR."/sedlex/translations/".$domain."_".$signature_files.".html")) { + echo file_get_contents(WP_CONTENT_DIR."/sedlex/translations/".$domain."_".$signature_files.".html") ; + echo "

    ".sprintf(__('Summary cached %s', 'SL_framework'), $signature_files)."

    " ; + return ; + } + + // We delete all cache file + $dir = @scandir(WP_CONTENT_DIR."/sedlex/translations/"); + if ($dir !== false) { + foreach($dir as $item) { + if ('.' == $item || '..' == $item) + continue; + if (preg_match("/".$domain.".*\.html$/", $item, $h)) { + unlink (WP_CONTENT_DIR."/sedlex/translations/".$item); + } + } + } + + // we reconstruct the cache file + $signature_files = get_locale() ; + ob_start() ; + echo "

    ".__("The sentences used in this plugin are in English. Help the others users using the same language as you by translating this plugin.",'SL_framework')."

    " ; + echo "

    ".sprintf(__("This plugin is available in %s languages.",'SL_framework'),$nb)."

    " ; + + // We count the number of sentences to be translated + if (is_file($path."/lang/".$domain.".pot")) { + $content_pot = file($path."/lang/".$domain.".pot") ; + } else { + $content_pot = array() ; + } + $all_count_pot = 0 ; + foreach ($content_pot as $ligne_pot) { + if (preg_match("/^msgid \\\"(.*)\\\"$/", trim($ligne_pot))) { + $all_count_pot ++ ; + } + } + echo "

    ".sprintf(__("There are %s sentences to be translated in this plugin.",'SL_framework'),$all_count_pot)."

    " ; + + $i = 1 ; + + $table = new SLFramework_Table() ; + $table->title (array(__('Language','SL_framework'), __('Ratio %','SL_framework'), __('Translators','SL_framework'))) ; + + foreach ($file as $f) { + $flag = $code_locales[$f]['country-www'] ; + $native = $code_locales[$f]['lang-native'] ; + + // We look for the position in the sprite image + //----------------------------------------------- + $style = "" ; + $num = 0 ; + + $i = 1 ; + // Note that $flags is defined in the translation.inc.php + foreach ($flags as $fl) { + if ($fl == $flag) { + $num = $i; + } + $i++ ; + } + + // We convert the position of the flag into coordinates of the flags_sprite.png image + // Note that there is 12 flags per line + $number_of_flags_per_line = 12 ; + $col = $num % $number_of_flags_per_line ; + $line = floor($num / $number_of_flags_per_line) ; + // Each flag has a width of 18px and an height of 12px + $style = "background-position: ".($col*-18)."px ".($line*-12)."px;" ; + + // We check if the present author have modify a translation here + if ($f=="en_US") { + $info['total'] = 0 ; + $info['translated'] = __("This is the default language of the plugin. It cannot be modified.", "SL_framework") ; + $info['close'] = 0 ; + $info['translators'] = "##" ; + } else { + $info = SLFramework_Translation::get_info(file($path."/lang/".$domain."-".$f.".po"), file($path."/lang/".$domain.".pot")) ; + $info = SLFramework_Translation::get_info(file($path."/lang/".$domain."-".$f.".po"), file($path."/lang/".$domain.".pot")) ; + } + + if (($f=="en_US") || $info['translated']!=0) { + $options = get_option('SL_framework_options'); + $nameTranslator = $options['nameTranslator'] ; + $info_file = pluginSedLex::get_plugins_data(WP_PLUGIN_DIR."/".$plugin."/".$plugin.".php") ; + $isEmailAuthor = false ; + if (preg_match("#^[a-z0-9-_.]+@[a-z0-9-_.]{2,}\.[a-z]{2,4}$#",$info_file['Email'])) { + $isEmailAuthor = true ; + } + + // We build the table + $cel_lang = new adminCell(" ".$native." ($f)") ; + if ($f!="en_US") { + $signature_files .= $domain."-".$f.".mo".filesize($path."/lang/".$domain."-".$f.".mo"); + $cel_lang->add_action(__('Modify','SL_framework'), "modify_trans('".$plugin_lien."','".$domain."', 'false', '".$f."')" ) ; + if (($isEmailAuthor=="true") && (strlen($nameTranslator)>3) && (strpos($info['translators'], $nameTranslator)>0)) { + $cel_lang->add_action("".__('Send to the author of the plugin','SL_framework')."", "send_trans(\"".$plugin_lien."\",\"".$domain."\", \"false\", \"".$f."\")") ; + } + } + if ($f!="en_US") { + if ($info['close']==0) { + $cel_pour = new adminCell("

    ".(sprintf(__("%s sentences have been translated (i.e. %s).",'SL_framework'), "".$info['translated']."/".$info['total']."", "".(floor($info['translated']/$info['total']*1000)/10)."%"))."

    ") ; + } else { + $cel_pour = new adminCell("

    ".(sprintf(__("%s sentences have been translated (i.e. %s) %s %s sentences have to be checked because they are close (but not identical) to those to translate.%s",'SL_framework'), "".$info['translated']."/".$info['total']."", "".(floor($info['translated']/$info['total']*1000)/10)."%", "", $info['close'], ""))."

    ") ; + } + $cel_tran = new adminCell($info['translators']) ; + } else { + $cel_pour = new adminCell("

    ".$info['translated']."

    ") ; + $cel_tran = new adminCell("") ; + } + $table->add_line(array($cel_lang, $cel_pour, $cel_tran), $f) ; + + $i++ ; + + } else { + // If empty, we delete the files + unlink($path."/lang/".$domain."-".$f.".po") ; + unlink($path."/lang/".$domain."-".$f.".mo") ; + } + } + echo $table->flush() ; + + echo "
    " ; + echo "

    ".__('Add a new translation','SL_framework')."

    " ; + echo "

    ".__('You may add a new translation hereafter (Please note that it is recommended to send your translation to the author so that he would be able to add your translation to the future release of the plugin !)','SL_framework')."

    " ; + echo "" ; + echo "" ; + + $x = plugin_dir_url("/").'/'.str_replace(basename(__FILE__),"",plugin_basename(__FILE__)) ; + echo "" ; + $content = ob_get_clean() ; + + $signature_files = sha1($signature_files) ; + file_put_contents(WP_CONTENT_DIR."/sedlex/translations/".$domain."_".$signature_files.".html", $content) ; + echo $content ; + } + + /** ==================================================================================================================================================== + * List all the language installed for this plugin (in an array) + * + * @access private + * @return void + */ + + static function list_languages($plugin) { + require('translation.inc.php') ; + + $path = WP_PLUGIN_DIR."/".$plugin ; + $plugin_lien = $plugin; + + @chmod($path."/lang/", 0755) ; + $dir = @scandir($path."/lang/"); + + $file = array() ; + foreach($dir as $item) { + if ('.' == $item || '..' == $item) + continue; + if (preg_match("/([a-z]{2}_[A-Z]{2})\.po$/", $item, $h)) { + $file[$item] = $h[1]; + } + } + + if (!in_array('en_US', $file)) $file[] = 'en_US'; + asort($file); + + $nb = count($file) ; + $result = array() ; + foreach ($file as $filename=>$lang) { + if ($lang!="en_US") { + $lang2 = $code_locales[$lang]['lang'] ; + $country = $code_locales[$lang]['country'] ; + + $info = file($path."/lang/".$filename) ; + $translators = "" ; + foreach ($info as $ligne_po) { + if (preg_match("/Last-Translator: (.*) \<(.*)\>/", trim($ligne_po), $match)) { + if ($translators != "") + $translators .= ", " ; + $translators .= trim($match[1]) ; + } + } + $result[] = $lang2. " (".$country.") translation provided by ".$translators ; + } else { + $lang2 = $code_locales[$lang]['lang'] ; + $country = $code_locales[$lang]['country'] ; + $result[] = $lang2. " (".$country."), default language" ; + + } + } + return $result ; + } + + /** ==================================================================================================================================================== + * Update the language installed for this framework + * + * @access private + * @return void + */ + + static function update_languages_framework() { + // The plugin_frame is the plugin that store the framework file + $plugin_frame = explode("/",plugin_basename(__FILE__)); + $plugin_frame = $plugin_frame[0]; + + $path = WP_PLUGIN_DIR."/".$plugin_frame ; + + if (!is_dir($path."/core/lang/")) { + mkdir($path."/core/lang/", 0777, true) ; + } + + // We check if the .pot file exist + if (is_file($path."/core/lang/SL_framework.pot")) { + // We delete the file + @unlink($path."/core/lang/SL_framework.pot"); + } + // We generate a new POT file + $content = "Content-Transfer-Encoding: 8bit\n\n" ; + $php = SLFramework_Translation::get_php_files($path) ; + + foreach ($php as $f) { + $lines = file($path."/".$f) ; + + $i = 0 ; + foreach($lines as $l) { + $i++ ; + $match_array = array("@__[ ]*\([ ]*\\\"([^\\\"]*)\\\"([^)]*)SL_framework([^)]*)\)@", + "@__[ ]*\([ ]*'([^']*)'([^)]*)SL_framework([^)]*)\)@") ; + foreach ($match_array as $reg) { + if (preg_match_all($reg,$l, $match,PREG_SET_ORDER)) { + foreach($match as $m) { + $val[0] = trim($m[1]) ; + $pos = strpos($content,'msgid "'.$val[0].'"') ; + if ($pos===false) { + // We translate only the text of the domain of the plugin + $content .= "#: ".$f.":".$i."\n" ; + $content .= "#@ SL_framework\n" ; // domain + $value = $val[0] ; + // If the string is between simple quote, we escape the double quote + if ($reg==$match_array[1]) + $value = str_replace("\"", "\\\"",$val[0]) ; + $content .= 'msgid "'.$value.'"'."\n" ; + $content .= 'msgstr ""'."\n\n" ; + } else { + // If the text is already in the POT file, we only add the line number and the file + $temp = explode("#@ SL_framework\n".'msgid "'.$val[0].'"'."\n", $content) ; + $content = $temp[0]."#: ".$f.":".$i."\n"."#@ SL_framework\n".'msgid "'.$val[0].'"'."\n".$temp[1] ; + } + } + } + } + } + } + file_put_contents($path."/core/lang/SL_framework.pot", $content) ; + } + + /** ==================================================================================================================================================== + * List all the language installed for this framework + * + * @access private + * @return void + */ + + static function installed_languages_framework($domain, $plugin) { + require('translation.inc.php') ; + + // The plugin_frame is the plugin that store the framework file + $plugin_frame = explode("/",plugin_basename(__FILE__)); + $plugin_frame = $plugin_frame[0]; + + $path = WP_PLUGIN_DIR."/".$plugin_frame ; + + $path_cache = WP_PLUGIN_DIR."/".$plugin ; + + $plugin_lien = $plugin; + + @chmod($path."/core/lang/", 0755) ; + $dir = @scandir($path."/core/lang/"); + $dom = "SL_framework" ; + + $file = array() ; + $signature_files = array() ; + + foreach($dir as $item) { + if ('.' == $item || '..' == $item) + continue; + if (preg_match("/([a-z]{2}_[A-Z]{2})\.mo$/", $item, $h)) { + $file[] = $h[1]; + $signature_files[] = "SL_framework-".$h[1].".mo".filesize($path."/core/lang/SL_framework-".$h[1].".mo") ; + } + } + + if (!in_array('en_US', $file)) $file[] = 'en_US'; + sort($file); + + sort($signature_files) ; + $signature_files = get_locale().implode('', $signature_files) ; + $signature_files = sha1($signature_files) ; + + $nb = count($file) ; + if (!is_dir(WP_CONTENT_DIR."/sedlex/translations/")) { + @mkdir(WP_CONTENT_DIR."/sedlex/translations/", 0777, true) ; + } + if (is_file(WP_CONTENT_DIR."/sedlex/translations/SL_framework_".$signature_files.".html")) { + echo file_get_contents(WP_CONTENT_DIR."/sedlex/translations/SL_framework_".$signature_files.".html") ; + echo "

    ".sprintf(__('Summary cached %s', 'SL_framework'), $signature_files)."

    " ; + return ; + } + + // We delete all cache file + $dir = @scandir(WP_CONTENT_DIR."/sedlex/translations"); + foreach($dir as $item) { + if ('.' == $item || '..' == $item) + continue; + if (preg_match("/SL_framework.*\.html$/", $item, $h)) { + unlink (WP_CONTENT_DIR."/sedlex/translations/".$item); + } + } + + // We reconstruct the cache file + $signature_files = get_locale() ; + ob_start() ; + + echo "

    ".__("The 'SL framework' is a framework used for developping many plugins like this one. Thus, if you participate translating the framework, it will be very helpful for a bunch of plugins.",'SL_framework')."

    " ; + echo "

    ".sprintf(__("There is %s languages supported for the 'SL framework'.",'SL_framework'),$nb)."

    " ; + + // We count the number of sentences to be translated + $content_pot = file($path."/core/lang/SL_framework.pot") ; + $all_count_pot = 0 ; + foreach ($content_pot as $ligne_pot) { + if (preg_match("/^msgid \\\"(.*)\\\"$/", trim($ligne_pot))) { + $all_count_pot ++ ; + } + } + echo "

    ".sprintf(__("There is %s sentence to be translated in the framework.",'SL_framework'),$all_count_pot)."

    " ; + + $i = 1 ; + + $table = new SLFramework_Table() ; + $table->title (array(__('Language','SL_framework'), __('Ratio %','SL_framework'), __('Translators','SL_framework'))) ; + + foreach ($file as $f) { + $flag = $code_locales[$f]['country-www'] ; + $native = $code_locales[$f]['lang-native'] ; + + // We look for the position in the sprite image + //----------------------------------------------- + $style = "" ; + $num = 0 ; + + $i = 1 ; + // Note that $flags is defined in the translation.inc.php + foreach ($flags as $fl) { + if ($fl == $flag) { + $num = $i; + } + $i++ ; + } + + // We convert the position of the flag into coordinates of the flags_sprite.png image + // Note that there is 12 flags per line + $number_of_flags_per_line = 12 ; + $col = $num % $number_of_flags_per_line ; + $line = floor($num / $number_of_flags_per_line) ; + // Each flag has a width of 18px and an height of 12px + $style = "background-position: ".($col*-18)."px ".($line*-12)."px;" ; + + // We check if the present author have modify a translation here + if ($f=="en_US") { + $info['total'] = 0 ; + $info['translated'] = __("This is the default language of the plugin. It cannot be modified.", "SL_framework") ; + $info['close'] = 0 ; + $info['translators'] = "##" ; + } else { + $info = SLFramework_Translation::get_info(file($path."/core/lang/SL_framework-".$f.".po"), file($path."/core/lang/SL_framework.pot")) ; + } + + if (($f=="en_US") || $info['translated']!=0) { + $options = get_option('SL_framework_options'); + $nameTranslator = $options['nameTranslator'] ; + $info_file = pluginSedLex::get_plugins_data(WP_PLUGIN_DIR."/".$plugin."/".$plugin.".php") ; + $isEmailAuthor = false ; + if (preg_match("#^[a-z0-9-_.]+@[a-z0-9-_.]{2,}\.[a-z]{2,4}$#",$info_file['Framework_Email'])) { + $isEmailAuthor = true ; + } + + // We build the table + $cel_lang = new adminCell(" ".$native." ($f)") ; + if ($f!="en_US") { + $signature_files .= "SL_framework-".$f.".mo".filesize($path."/core/lang/SL_framework-".$f.".mo") ; + $cel_lang->add_action(__('Modify','SL_framework'), "modify_trans('".$plugin_lien."','".$domain."', '".$plugin_frame."', '".$f."')" ) ; + if (($isEmailAuthor=="true") && (strlen($nameTranslator)>3) && (strpos($info['translators'], $nameTranslator)>0)) { + $cel_lang->add_action("".__('Send to the author of the framework','SL_framework')."", "send_trans('".$plugin_lien."','".$domain."', '".$plugin_frame."' , \"".$f."\")") ; + } + } + if ($f!="en_US") { + if ($info['close']==0) { + $cel_pour = new adminCell("

    ".(sprintf(__("%s sentences have been translated (i.e. %s).",'SL_framework'), "".$info['translated']."/".$info['total']."", "".(floor($info['translated']/$info['total']*1000)/10)."%"))."

    ") ; + } else { + $cel_pour = new adminCell("

    ".(sprintf(__("%s sentences have been translated (i.e. %s) %s %s sentences have to be checked because they are close (but not identical) to those to translate.%s",'SL_framework'), "".$info['translated']."/".$info['total']."", "".(floor($info['translated']/$info['total']*1000)/10)."%", "", $info['close'], ""))."

    ") ; + } + $cel_tran = new adminCell($info['translators']) ; + } else { + $cel_pour = new adminCell("

    ".$info['translated']."

    ") ; + $cel_tran = new adminCell("") ; + } + $table->add_line(array($cel_lang, $cel_pour, $cel_tran), $f) ; + + $i++ ; + } else { + // If empty, we delete the files + unlink ($path."/core/lang/SL_framework-".$f.".po") ; + unlink ($path."/core/lang/SL_framework-".$f.".mo") ; + } + + } + echo $table->flush() ; + + echo "
    " ; + echo "

    ".__('Add a new translation','SL_framework')."

    " ; + echo "

    ".__('You may add a new translation hereafter (Please note that it is recommended to send your translation to the author so that he would be able to add your translation to the future release of the plugin !)','SL_framework')."

    " ; + echo "" ; + echo "" ; + + $x = plugin_dir_url("/").'/'.str_replace(basename(__FILE__),"",plugin_basename(__FILE__)) ; + echo "" ; + $content = ob_get_clean() ; + + $signature_files = sha1($signature_files) ; + file_put_contents(WP_CONTENT_DIR."/sedlex/translations/SL_framework_".$signature_files.".html", $content) ; + echo $content ; + } + } +} + + +?> \ No newline at end of file diff --git a/core/translation.inc.php b/core/translation.inc.php new file mode 100644 index 0000000..269a5f9 --- /dev/null +++ b/core/translation.inc.php @@ -0,0 +1,1803 @@ + array('af_AF'), + 'ar' => array('ar_AE','ar_BH','ar_DZ','ar_EG','ar_IQ','ar_JO','ar_KW','ar_LB','ar_LY','ar_MA','ar_OM','ar_QA','ar_SA','ar_SY','ar_TN','ar_YE'), + 'az' => array('az_AZ'), + 'be' => array('be_BY'), + 'bg' => array('bg_BG'), + 'by' => array('by_BY'), + 'ca' => array('ca_ES'), + 'cs' => array('cs_CZ'), + 'da' => array('da_DK'), + 'de' => array('de_AT','de_CH','de_DE','de_LU'), + 'el' => array('el_CY','el_GR', 'el_EL'), + 'en' => array('en_AU','en_CA','en_GB','en_IE','en_NZ','en_PH','en_US','en_ZA'), + 'es' => array('es_AR','es_BO','es_CL','es_CO','es_CR','es_DO','es_EC','es_ES','es_GT','es_HN','es_MX','es_NI','es_PA','es_PE','es_PR','es_PY','es_SV','es_UY','es_VE'), + 'et' => array('et_EE'), + 'eo' => array('eo_EO'), + 'eu' => array('eu_ES'), + 'fa' => array('fa_IR'), + 'fi' => array('fi_FI'), + 'fo' => array('fo_FO'), + 'fr' => array('fr_BE','fr_CA','fr_CH','fr_FR','fr_LU'), + 'fy' => array('fy_NL'), + 'ga' => array('ga_IE'), + 'he' => array('he_IL'), + 'hi' => array('hi_IN'), + 'hr' => array('hr_HR'), + 'hu' => array('hu_HU'), + 'id' => array('id_ID'), + 'in' => array('in_ID'), + 'is' => array('is_IS'), + 'it' => array('it_CH','it_IT'), + 'ja' => array('ja_JP'), + 'kk' => array('kk_KK'), + 'ko' => array('ko_KR'), + 'ky' => array('ky_KY'), + 'lb' => array('lb_LB'), + 'lt' => array('lt_LT'), + 'lv' => array('lv_LV'), + 'mk' => array('mk_MK'), + 'nb' => array('nb_NB', 'nb_NO'), + 'nl' => array('nl_BE','nl_NL'), + 'nn' => array('nn_NN'), + 'no' => array('no_NO'), + 'pl' => array('pl_PL'), + 'pt' => array('pt_BR','pt_PT'), + 'ro' => array('ro_RO'), + 'ru' => array('ru_RU'), + 'sk' => array('sk_SK'), + 'sl' => array('sl_SI'), + 'sq' => array('sq_AL'), + 'sr' => array('sr_BA','sr_CS', 'sr_RS'), + 'sv' => array('sv_SE'), + 'th' => array('th_TH'), + 'tl' => array('tl_PH'), + 'tr' => array('tr_TR'), + 'uk' => array('uk_UA'), + 'vi' => array('vi_VN'), + 'xh' => array('xh_XH'), + 'zh' => array('zh_CN','zh-MO','zh_HK','zh_SG','zh_TW'), + 'zu' => array('zu_ZU'), +); + +$language_names = array( + 'af' => array( + 'lang-native' => 'Afrikaans', + 'country-www' => 'af' + ), + 'ar' => array( + 'lang-native' => 'العربية/الإمارات', + 'country-www' => 'ar' + ), + 'az' => array ( + 'lang-native' => 'Azərbaycan', + 'country-www' => 'az' + ), + 'be' => array( + 'lang-native' => 'Беларускі', + 'country-www' => 'be' + ), + 'bg' => array( + 'lang-native' => 'Български', + 'country-www' => 'bg' + ), + 'by' => array( + 'lang-native' => 'Беларускі', + 'country-www' => 'by' + ), + 'ca' => array( + 'lang-native' => 'Сatalà', + 'country-www' => 'ca' + ), + 'ckb' => array( + 'lang-native' => 'Kurdi', + 'country-www' => '' + ), + 'cs' => array( + 'lang-native' => 'Čeština', + 'country-www' => 'cs' + ), + 'da' => array( + 'lang-native' => 'Dansk', + 'country-www' => 'da' + ), + 'de' => array( + 'lang-native' => 'Deutsch', + 'country-www' => 'de' + ), + 'el' => array( + 'lang-native' => 'Ελληνικά', + 'country-www' => 'el' + ), + 'en' => array( + 'lang-native' => 'English', + 'country-www' => 'en' + ), + 'eo' => array( + 'lang-native' => 'Esperanto', + 'country-www' => 'eo' + ), + 'es' => array( + 'lang-native' => 'Español', + 'country-www' => 'es' + ), + 'et' => array( + 'lang-native' => 'Eesti', + 'country-www' => 'et' + ), + 'eu' => array( + 'lang-native' => 'Euskara', + 'country-www' => 'eu' + ), + 'fa' => array( + 'lang-native' => 'فارسی', + 'country-www' => 'fa' + ), + 'fi' => array( + 'lang-native' => 'Suomi', + 'country-www' => 'fi' + ), + 'fo' => array( + 'lang-native' => 'Føroyskt', + 'country-www' => 'fo' + ), + 'fr' => array( + 'lang-native' => 'Français', + 'country-www' => 'fr' + ), + 'fy' => array( + 'lang-native' => 'Frysk', + 'country-www' => 'fy' + ), + 'ga' => array( + 'lang-native' => 'Gaeilge', + 'country-www' => 'ga' + ), + 'he' => array( + 'lang-native' => 'עברית', + 'country-www' => 'he' + ), + 'hi' => array( + 'lang-native' => 'हिन्दी', + 'country-www' => 'hi' + ), + 'hr' => array( + 'lang-native' => 'Hrvatski', + 'country-www' => 'hr' + ), + 'hu' => array( + 'lang-native' => 'Magyar', + 'country-www' => 'hu' + ), + 'id' => array( + 'lang-native' => 'Bahasa', + 'country-www' => 'id' + ), + 'in' => array( + 'lang-native' => 'Bahasa', + 'country-www' => 'in' + ), + 'is' => array( + 'lang-native' => 'Íslenska', + 'country-www' => 'is' + ), + 'it' => array( + 'lang-native' => 'Italiano', + 'country-www' => 'it' + ), + 'ja' => array( + 'lang-native' => '日本語', + 'country-www' => 'ja' + ), + 'kk' => array( + 'lang-native' => 'Қазақша', + 'country-www' => 'kk' + ), + 'ko' => array( + 'lang-native' => '한국어', + 'country-www' => 'ko' + ), + 'ky' => array( + 'lang-native' => 'Кыргызча', + 'country-www' => 'ky' + ), + 'lb' => array( + 'lang-native' => 'Lëtzebuergesch', + 'country-www' => 'lb' + ), + 'lt' => array( + 'lang-native' => 'Lietuvių', + 'country-www' => 'lt' + ), + 'lv' => array( + 'lang-native' => 'Latviešu', + 'country-www' => 'lv' + ), + 'mk' => array( + 'lang-native' => 'Македонски', + 'country-www' => 'mk' + ), + 'nb' => array( + 'lang-native' => '‪Norsk Bokmål‬', + 'country-www' => 'nb' + ), + 'nl' => array( + 'lang-native' => 'Nederlands', + 'country-www' => 'nl' + ), + 'nn' => array( + 'lang-native' => 'Norsk', + 'country-www' => 'nn' + ), + 'pl' => array( + 'lang-native' => 'Polski', + 'country-www' => 'pl' + ), + 'pt' => array( + 'lang-native' => 'Português', + 'country-www' => 'pt' + ), + 'ro' => array( + 'lang-native' => 'Română', + 'country-www' => 'ro' + ), + 'ru' => array( + 'lang-native' => 'Русский', + 'country-www' => 'ru' + ), + 'sk' => array( + 'lang-native' => 'Slovenčina', + 'country-www' => 'sk' + ), + 'sl' => array( + 'lang-native' => 'Slovenščina', + 'country-www' => 'sl' + ), + 'sr' => array( + 'lang-native' => 'Српски', + 'country-www' => 'sr' + ), + 'sv' => array( + 'lang-native' => 'Svenska', + 'country-www' => 'sv' + ), + 'th' => array( + 'lang-native' => 'ไทย/ประเทศไทย', + 'country-www' => 'th' + ), + 'tl' => array( + 'lang-native' => 'Tagalog', + 'country-www' => 'tl' + ), + 'tr' => array( + 'lang-native' => 'Türkçe', + 'country-www' => 'tr' + ), + 'uk' => array( + 'lang-native' => 'Українська', + 'country-www' => 'uk' + ), + 'vi' => array( + 'lang-native' => 'Tiếng Việt', + 'country-www' => 'vi' + ), + 'xh' => array( + 'lang-native' => 'isiXhosa', + 'country-www' => 'xh' + ), + 'zh' => array( + 'lang-native' => '中文', + 'country-www' => 'zh' + ), + 'zu' => array( + 'lang-native' => 'isiZulu', + 'country-www' => 'zu' + ) +); + +//based on http://translate.sourceforge.net/wiki/l10n/pluralforms +$csp_l10n_plurals = array( + 'af' => "nplurals=2; plural=n != 1;", + 'ar' => "nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 ? 4 : 5;", + 'az' => "nplurals=2; plural=n != 1;", + 'be' => "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);", + 'bg' => "nplurals=2; plural=n != 1;", + 'by' => "nplurals=3; plural=n%100/10==1 ? 2 : n%10==1 ? 0 : (n+9)%10>3 ? 2 : 1;", + 'ca' => "nplurals=2; plural=n != 1;", + 'cs' => "nplurals=3; plural=n%100/10==1 ? 2 : n%10==1 ? 0 : (n+9)%10>3 ? 2 : 1;", + 'da' => "nplurals=2; plural=n != 1;", + 'de' => "nplurals=2; plural=n != 1;", + 'el' => "nplurals=2; plural=n != 1;", + 'en' => "nplurals=2; plural=n != 1;", + 'es' => "nplurals=2; plural=n != 1;", + 'et' => "nplurals=2; plural=n != 1;", + 'eo' => "nplurals=2; plural=n != 1;", + 'eu' => "nplurals=2; plural=n != 1;", + 'fa' => "nplurals=1; plural=0;", + 'fi' => "nplurals=2; plural=n != 1;", + 'fo' => "nplurals=2; plural=n != 1;", + 'fr' => "nplurals=2; plural=n>1;", + 'fy' => "nplurals=2; plural=n != 1;", + 'ga' => "nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4;", + 'he' => "nplurals=2; plural=n != 1;", + 'hi' => "nplurals=2; plural=n != 1;", + 'hr' => "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);", + 'hu' => "nplurals=1; plural=0;", + 'id' => "nplurals=2; plural=n != 1;", + 'in' => "nplurals=2; plural=n != 1;", + 'is' => "nplurals=2; plural=(n%10!=1 || n%100==11);", + 'it' => "nplurals=2; plural=n != 1;", + 'ja' => "nplurals=1; plural=0;", + 'kk' => "nplurals=1; plural=0;", + 'ko' => "nplurals=1; plural=0;", + 'ky' => "nplurals=2; plural=n != 1;", + 'lb' => "nplurals=2; plural=n != 1;", + 'lt' => "nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2;", + 'lv' => "nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2;", + 'mk' => "nplurals=2; plural= n==1 || n%10==1 ? 0 : 1;", + 'nb' => "nplurals=2; plural=n != 1;", + 'nl' => "nplurals=2; plural=n != 1;", + 'nn' => "nplurals=2; plural=n != 1;", + 'no' => "nplurals=2; plural=n != 1;", + 'pl' => "nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;", + 'pt' => "nplurals=2; plural=n != 1;", + 'ro' => "nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < 20)) ? 1 : 2); ", + 'ru' => "nplurals=3; plural=n%100/10==1 ? 2 : n%10==1 ? 0 : (n+9)%10>3 ? 2 : 1;", + 'sk' => "nplurals=3; plural=(n==1) ? 1 : (n>=2 && n<=4) ? 2 : 0;", + 'sl' => "nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3;", + 'sq' => "nplurals=2; plural=n != 1;", //may not be correct! + 'sr' => "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);", + 'sv' => "nplurals=2; plural=n != 1;", + 'th' => "nplurals=1; plural=0;", + 'tl' => "nplurals=2; plural=n != 1;", + 'tr' => "nplurals=1; plural=0;", + 'uk' => "nplurals=3; plural=n%100/10==1 ? 2 : n%10==1 ? 0 : (n+9)%10>3 ? 2 : 1;", + 'vi' => "nplurals=1; plural=0;", + 'xh' => "nplurals=2; plural=n != 1;", + 'zh' => "nplurals=1; plural=0;", + 'zu' => "nplurals=2; plural=n != 1;", +); + +$code_locales = array( + 'af_AF' => array ( + 'country' => "South Africa", + 'country-www' => 'af', + 'lang' => 'Afrikaans', + 'lang-native' => 'Afrikaans', + 'lang-www' => 'af-AF', + 'dir' => 'ltr', + 'ms-loc' => 'afk', + 'ms-cp' => 'CP1252', + 'google-api' => false, + ), + 'ar_AE' => array ( + 'country' => "U.A.E.", + 'country-www' => 'ae', + 'lang' => 'Arabic', + 'lang-native' => 'العربية/الإمارات', + 'lang-www' => 'ar-AE', + 'dir' => 'rtl', + 'ms-loc' => 'aru', + 'ms-cp' => 'CP1256', + 'google-api' => true, + ), + 'ar_BH' => array ( + 'country' => "Bahrain", + 'country-www' => 'bh', + 'lang' => 'Arabic', + 'lang-native' => 'العربية/البحرين', + 'lang-www' => 'ar-BH', + 'dir' => 'rtl', + 'ms-loc' => 'arh', + 'ms-cp' => 'CP1256', + 'google-api' => true, + ), + 'ar_DZ' => array ( + 'country' => "Algeria", + 'country-www' => 'dz', + 'lang' => 'Arabic', + 'lang-native' => 'العربية/الجزائر', + 'lang-www' => 'ar-DZ', + 'dir' => 'rtl', + 'ms-loc' => 'arg', + 'ms-cp' => 'CP1256', + 'google-api' => true, + ), + 'ar_EG' => array ( + 'country' => "Egypt", + 'country-www' => 'eg', + 'lang' => 'Arabic', + 'lang-native' => 'العربية/مصر', + 'lang-www' => 'ar-EG', + 'dir' => 'rtl', + 'ms-loc' => 'are', + 'ms-cp' => 'CP1256', + 'google-api' => true, + ), + 'ar_IQ' => array ( + 'country' => "Iraq", + 'country-www' => 'iq', + 'lang' => 'Arabic', + 'lang-native' => 'العربية/العراق', + 'lang-www' => 'ar-IQ', + 'dir' => 'rtl', + 'ms-loc' => 'ari', + 'ms-cp' => 'CP1256', + 'google-api' => true, + ), + 'ar_JO' => array ( + 'country' => "Jordan", + 'country-www' => 'jo', + 'lang' => 'Arabic', + 'lang-native' => 'العربية/الأردن', + 'lang-www' => 'ar-JO', + 'dir' => 'rtl', + 'ms-loc' => 'arj', + 'ms-cp' => 'CP1256', + 'google-api' => true, + ), + 'ar_KW' => array ( + 'country' => "Kuwait", + 'country-www' => 'kw', + 'lang' => 'Arabic', + 'lang-native' => 'العربية/الكويت', + 'lang-www' => 'ar-KW', + 'dir' => 'rtl', + 'ms-loc' => 'ark', + 'ms-cp' => 'CP1256', + 'google-api' => true, + ), + 'ar_LB' => array ( + 'country' => "Lebanon", + 'country-www' => 'lb', + 'lang' => 'Arabic', + 'lang-native' => 'العربية/لبنان', + 'lang-www' => 'ar-LB', + 'dir' => 'rtl', + 'ms-loc' => 'arb', + 'ms-cp' => 'CP1256', + 'google-api' => true, + ), + 'ar_LY' => array ( + 'country' => "Libya", + 'country-www' => 'ly', + 'lang' => 'Arabic', + 'lang-native' => 'العربية/ليبيا', + 'lang-www' => 'ar-LY', + 'dir' => 'rtl', + 'ms-loc' => 'arl', + 'ms-cp' => 'CP1256', + 'google-api' => true, + ), + 'ar_MA' => array ( + 'country' => "Morocco", + 'country-www' => 'ma', + 'lang' => 'Arabic', + 'lang-native' => 'العربية/المغرب', + 'lang-www' => 'ar-MA', + 'dir' => 'rtl', + 'ms-loc' => 'arm', + 'ms-cp' => 'CP1256', + 'google-api' => true, + ), + 'ar_OM' => array ( + 'country' => "Oman", + 'country-www' => 'om', + 'lang' => 'Arabic', + 'lang-native' => 'العربية/سلطنة عمان', + 'lang-www' => 'ar-OM', + 'dir' => 'rtl', + 'ms-loc' => 'aro', + 'ms-cp' => 'CP1256', + 'google-api' => true, + ), + 'ar_QA' => array ( + 'country' => "Qatar", + 'country-www' => 'qa', + 'lang' => 'Arabic', + 'lang-native' => 'العربية/قطر', + 'lang-www' => 'ar-QA', + 'dir' => 'rtl', + 'ms-loc' => 'arq', + 'ms-cp' => 'CP1256', + 'google-api' => true, + ), + 'ar_SA' => array ( + 'country' => "Saudi Arabia", + 'country-www' => 'sa', + 'lang' => 'Arabic', + 'lang-native' => 'العربية/السعودية', + 'lang-www' => 'ar-SA', + 'dir' => 'rtl', + 'ms-loc' => 'ara', + 'ms-cp' => 'CP1256', + 'google-api' => true, + ), + 'ar_SY' => array ( + 'country' => "Syria", + 'country-www' => 'sy', + 'lang' => 'Arabic', + 'lang-native' => 'العربية/سوريا', + 'lang-www' => 'ar-SY', + 'dir' => 'rtl', + 'ms-loc' => 'ars', + 'ms-cp' => 'CP1256', + 'google-api' => true, + ), + 'ar_TN' => array ( + 'country' => "Tunisia", + 'country-www' => 'tn', + 'lang' => 'Arabic', + 'lang-native' => 'العربية/تونس', + 'lang-www' => 'ar-TN', + 'dir' => 'rtl', + 'ms-loc' => 'art', + 'ms-cp' => 'CP1256', + 'google-api' => true, + ), + 'ar_YE' => array ( + 'country' => "Yemen", + 'country-www' => 'ye', + 'lang' => 'Arabic', + 'lang-native' => 'العربية/اليمن', + 'lang-www' => 'ar-YE', + 'dir' => 'rtl', + 'ms-loc' => 'ary', + 'ms-cp' => 'CP1256', + 'google-api' => true, + ), + 'az_AZ' => array ( + 'country' => "Azerbaijan", + 'country-www' => 'az', + 'lang' => 'Azeri (Latin)', + 'lang-native' => 'Azərbaycan', + 'lang-www' => 'az-AZ', + 'dir' => 'ltr', + 'ms-loc' => 'aze', + 'ms-cp' => 'CP1254', + 'google-api' => true, + ), + 'be_BY' => array ( + 'country' => "Belarus", + 'country-www' => 'by', + 'lang' => 'Belarusian', + 'lang-native' => 'Беларускі', + 'lang-www' => 'be-BY', + 'dir' => 'ltr', + 'ms-loc' => 'bel', + 'ms-cp' => 'CP1251', + 'google-api' => false, + ), + 'bg_BG' => array ( + 'country' => "Bulgaria", + 'country-www' => 'bg', + 'lang' => 'Bulgarian', + 'lang-native' => 'Български', + 'lang-www' => 'bg-BG', + 'dir' => 'ltr', + 'ms-loc' => 'bgr', + 'ms-cp' => 'CP1251', + 'google-api' => true, + ), + 'by_BY' => array ( + 'country' => "Belarus", + 'country-www' => 'by', + 'lang' => 'Belarusian', + 'lang-native' => 'Беларускі', + 'lang-www' => 'by-BY', + 'dir' => 'ltr', + 'ms-loc' => 'bel', + 'ms-cp' => 'CP1251', + 'google-api' => false, + ), + 'ca_ES' => array ( + 'country' => "Spain", + 'country-www' => 'es', + 'lang' => 'Catalan', + 'lang-native' => 'Сatalà/Espanya', + 'lang-www' => 'ca-ES', + 'dir' => 'ltr', + 'ms-loc' => 'cat', + 'ms-cp' => 'CP1252', + 'google-api' => false, + ), + 'cs_CZ' => array ( + 'country' => "Czech Republic", + 'country-www' => 'cz', + 'lang' => 'Czech', + 'lang-native' => 'Čeština', + 'lang-www' => 'cs-CZ', + 'dir' => 'ltr', + 'ms-loc' => 'csy', + 'ms-cp' => 'CP1250', + 'google-api' => true, + ), + 'da_DK' => array ( + 'country' => "Denmark", + 'country-www' => 'dk', + 'lang' => 'Danish', + 'lang-native' => 'Dansk', + 'lang-www' => 'da-DK', + 'dir' => 'ltr', + 'ms-loc' => 'dan', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'de_AT' => array ( + 'country' => "Austria", + 'country-www' => 'at', + 'lang' => 'German', + 'lang-native' => 'Deutsch/Österreich', + 'lang-www' => 'de-AT', + 'dir' => 'ltr', + 'ms-loc' => 'dea', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'de_CH' => array ( + 'country' => "Switzerland", + 'country-www' => 'ch', + 'lang' => 'German', + 'lang-native' => 'Deutsch/Schweiz', + 'lang-www' => 'de-CH', + 'dir' => 'ltr', + 'ms-loc' => 'des', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'de_DE' => array ( + 'country' => "Germany", + 'country-www' => 'de', + 'lang' => 'German', + 'lang-native' => 'Deutsch/Deutschland', + 'lang-www' => 'de-DE', + 'dir' => 'ltr', + 'ms-loc' => 'deu', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'de_LU' => array ( + 'country' => "Luxembourg", + 'country-www' => 'lu', + 'lang' => 'German', + 'lang-native' => 'Deutsch/Luxemburg', + 'lang-www' => 'de-LU', + 'dir' => 'ltr', + 'ms-loc' => 'del', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'el_CY' => array ( + 'country' => "Greece", + 'country-www' => 'cy', + 'lang' => 'Greek', + 'lang-native' => 'Ελληνικά/Κύπρος', + 'lang-www' => 'el-CY', + 'dir' => 'ltr', + 'ms-loc' => 'ell', + 'ms-cp' => 'CP1253', + 'google-api' => true, + ), + 'el_GR' => array ( + 'country' => "Greece", + 'country-www' => 'gr', + 'lang' => 'Greek', + 'lang-native' => 'Ελληνικά/Ελλάδα', + 'lang-www' => 'el-GR', + 'dir' => 'ltr', + 'ms-loc' => 'ell', + 'ms-cp' => 'CP1253', + 'google-api' => true, + ), + 'el_EL' => array ( + 'country' => "Greece", + 'country-www' => 'el', + 'lang' => 'Greek', + 'lang-native' => 'Ελληνικά/Ελλάδα', + 'lang-www' => 'el-EL', + 'dir' => 'ltr', + 'ms-loc' => 'ell', + 'ms-cp' => 'CP1253', + 'google-api' => true, + ), + 'en_AU' => array ( + 'country' => "Australia", + 'country-www' => 'au', + 'lang' => 'English', + 'lang-native' => 'English/Australia', + 'lang-www' => 'en-AU', + 'dir' => 'ltr', + 'ms-loc' => 'ena', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'en_CA' => array ( + 'country' => "Canada", + 'country-www' => 'ca', + 'lang' => 'English', + 'lang-native' => 'English/Canada', + 'lang-www' => 'en-CA', + 'dir' => 'ltr', + 'ms-loc' => 'enc', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'en_GB' => array ( + 'country' => "United Kingdom", + 'country-www' => 'gb', + 'lang' => 'English', + 'lang-native' => 'English/United Kingdom', + 'lang-www' => 'en-GB', + 'dir' => 'ltr', + 'ms-loc' => 'eng', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'en_IE' => array ( + 'country' => "Ireland", + 'country-www' => 'ie', + 'lang' => 'English', + 'lang-native' => 'English/Ireland', + 'lang-www' => 'en-IE', + 'dir' => 'ltr', + 'ms-loc' => 'eni', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'en_NZ' => array ( + 'country' => "New Zealand", + 'country-www' => 'nz', + 'lang' => 'English', + 'lang-native' => 'English/New Zealand', + 'lang-www' => 'en-NZ', + 'dir' => 'ltr', + 'ms-loc' => 'enz', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'en_PH' => array ( + 'country' => "Republic of the Philippines", + 'country-www' => 'ph', + 'lang' => 'English', + 'lang-native' => 'English/Philippines', + 'lang-www' => 'en-PH', + 'dir' => 'ltr', + 'ms-loc' => 'enp', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'en_US' => array ( + 'country' => "United States", + 'country-www' => 'us', + 'lang' => 'English', + 'lang-native' => 'English/United States', + 'lang-www' => 'en-US', + 'dir' => 'ltr', + 'ms-loc' => 'enu', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'en_ZA' => array ( + 'country' => "South Africa", + 'country-www' => 'za', + 'lang' => 'English', + 'lang-native' => 'English/South Africa', + 'lang-www' => 'en-ZA', + 'dir' => 'ltr', + 'ms-loc' => 'ens', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'eo_EO' => array ( + 'country' => "-n.a.-", + 'country-www' => 'eo', + 'lang' => 'Esperanto', + 'lang-native' => 'Esperanto', + 'lang-www' => 'eo-EO', + 'dir' => 'ltr', + 'ms-loc' => 'enu', + 'ms-cp' => 'CP1252', + 'google-api' => false, + ), + 'es_AR' => array ( + 'country' => "Argentina", + 'country-www' => 'ar', + 'lang' => 'Spanish', + 'lang-native' => 'Español/Argentina', + 'lang-www' => 'es-AR', + 'dir' => 'ltr', + 'ms-loc' => 'ess', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'es_BO' => array ( + 'country' => "Bolivia", + 'country-www' => 'bo', + 'lang' => 'Spanish', + 'lang-native' => 'Español/Bolivia', + 'lang-www' => 'es-BO', + 'dir' => 'ltr', + 'ms-loc' => 'esb', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'es_CL' => array ( + 'country' => "Chile", + 'country-www' => 'cl', + 'lang' => 'Spanish', + 'lang-native' => 'Español/Chile', + 'lang-www' => 'es-CL', + 'dir' => 'ltr', + 'ms-loc' => 'esl', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'es_CO' => array ( + 'country' => "Colombia", + 'country-www' => 'co', + 'lang' => 'Spanish', + 'lang-native' => 'Español/Colombia', + 'lang-www' => 'es-CO', + 'dir' => 'ltr', + 'ms-loc' => 'eso', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'es_CR' => array ( + 'country' => "Costa Rica", + 'country-www' => 'cr', + 'lang' => 'Spanish', + 'lang-native' => 'Español/Costa Rica', + 'lang-www' => 'es-CR', + 'dir' => 'ltr', + 'ms-loc' => 'esc', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'es_DO' => array ( + 'country' => "Dominican Republic", + 'country-www' => 'do', + 'lang' => 'Spanish', + 'lang-native' => 'Español/República Dominicana', + 'lang-www' => 'es-DO', + 'dir' => 'ltr', + 'ms-loc' => 'esd', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'es_EC' => array ( + 'country' => "Ecuador", + 'country-www' => 'ec', + 'lang' => 'Spanish', + 'lang-native' => 'Español/Ecuador', + 'lang-www' => 'es-EC', + 'dir' => 'ltr', + 'ms-loc' => 'esf', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'es_ES' => array ( + 'country' => "Spain", + 'country-www' => 'es', + 'lang' => 'Spanish', + 'lang-native' => 'Español/España', + 'lang-www' => 'es-ES', + 'dir' => 'ltr', + 'ms-loc' => 'esp', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'es_GT' => array ( + 'country' => "Guatemala", + 'country-www' => 'gt', + 'lang' => 'Spanish', + 'lang-native' => 'Español/Guatemala', + 'lang-www' => 'es-GT', + 'dir' => 'ltr', + 'ms-loc' => 'esg', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'es_HN' => array ( + 'country' => "Honduras", + 'country-www' => 'hn', + 'lang' => 'Spanish', + 'lang-native' => 'Español/Honduras', + 'lang-www' => 'es-HN', + 'dir' => 'ltr', + 'ms-loc' => 'esh', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'es_MX' => array ( + 'country' => "Mexico", + 'country-www' => 'mx', + 'lang' => 'Spanish', + 'lang-native' => 'Español/México', + 'lang-www' => 'es-MX', + 'dir' => 'ltr', + 'ms-loc' => 'esm', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'es_NI' => array ( + 'country' => "Nicaragua", + 'country-www' => 'ni', + 'lang' => 'Spanish', + 'lang-native' => 'Español/Nicaragua', + 'lang-www' => 'es-NI', + 'dir' => 'ltr', + 'ms-loc' => 'esi', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'es_PA' => array ( + 'country' => "Panama", + 'country-www' => 'pa', + 'lang' => 'Spanish', + 'lang-native' => 'Español/Panamá', + 'lang-www' => 'es-PA', + 'dir' => 'ltr', + 'ms-loc' => 'esa', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'es_PE' => array ( + 'country' => "Peru", + 'country-www' => 'pe', + 'lang' => 'Spanish', + 'lang-native' => 'Español/Perú', + 'lang-www' => 'es-PE', + 'dir' => 'ltr', + 'ms-loc' => 'esr', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'es_PR' => array ( + 'country' => "Puerto Rico", + 'country-www' => 'pr', + 'lang' => 'Spanish', + 'lang-native' => 'Español/Puerto Rico', + 'lang-www' => 'es-PR', + 'dir' => 'ltr', + 'ms-loc' => 'esu', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'es_PY' => array ( + 'country' => "Paraguay", + 'country-www' => 'py', + 'lang' => 'Spanish', + 'lang-native' => 'Español/Paraguay', + 'lang-www' => 'es-PY', + 'dir' => 'ltr', + 'ms-loc' => 'esz', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'es_SV' => array ( + 'country' => "El Salvador", + 'country-www' => 'sv', + 'lang' => 'Spanish', + 'lang-native' => 'Español/El Salvador', + 'lang-www' => 'es-SV', + 'dir' => 'ltr', + 'ms-loc' => 'ese', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'es_UY' => array ( + 'country' => "Uruguay", + 'country-www' => 'uy', + 'lang' => 'Spanish', + 'lang-native' => 'Español/Uruguay', + 'lang-www' => 'es-UY', + 'dir' => 'ltr', + 'ms-loc' => 'esy', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'es_VE' => array ( + 'country' => "Venezuela", + 'country-www' => 've', + 'lang' => 'Spanish', + 'lang-native' => 'Español/Venezuela', + 'lang-www' => 'es-VE', + 'dir' => 'ltr', + 'ms-loc' => 'esv', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'et_EE' => array ( + 'country' => "Estonia", + 'country-www' => 'ee', + 'lang' => 'Estonian', + 'lang-native' => 'Eesti/Eesti', + 'lang-www' => 'et-EE', + 'dir' => 'ltr', + 'ms-loc' => 'eti', + 'ms-cp' => 'CP1257', + 'google-api' => false, + ), + 'eu_ES' => array ( + 'country' => "Basque", + 'country-www' => 'eu', + 'lang' => 'Basque', + 'lang-native' => 'Euskara/Basque', + 'lang-www' => 'eu-ES', + 'dir' => 'ltr', + 'ms-loc' => 'eh', + 'ms-cp' => 'CP1257', + 'google-api' => false, + ), + 'fa_IR' => array ( + 'country' => "Iran", + 'country-www' => 'ir', + 'lang' => 'Farsi', + 'lang-native' => 'فارسی', + 'lang-www' => 'fa-IR', + 'dir' => 'rtl', + 'ms-loc' => 'far', + 'ms-cp' => 'CP1252', + 'google-api' => false, + ), + 'fi_FI' => array ( + 'country' => "Finland", + 'country-www' => 'fi', + 'lang' => 'Finnish', + 'lang-native' => 'Suomi', + 'lang-www' => 'fi-FI', + 'dir' => 'ltr', + 'ms-loc' => 'fin', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'fo_FO' => array ( + 'country' => "Faroe Islands", + 'country-www' => 'fo', + 'lang' => 'Faroese', + 'lang-native' => 'Føroyskt', + 'lang-www' => 'fo-FO', + 'dir' => 'ltr', + 'ms-loc' => 'fos', + 'ms-cp' => 'CP1252', + 'google-api' => false, + ), + 'fr_BE' => array ( + 'country' => "Belgium", + 'country-www' => 'be', + 'lang' => 'French', + 'lang-native' => 'Français/Belgique', + 'lang-www' => 'fr-BE', + 'dir' => 'ltr', + 'ms-loc' => 'frb', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'fr_CA' => array ( + 'country' => "Canada", + 'country-www' => 'ca', + 'lang' => 'French', + 'lang-native' => 'Français/Canada', + 'lang-www' => 'fr-CA', + 'dir' => 'ltr', + 'ms-loc' => 'frc', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'fr_CH' => array ( + 'country' => "Switzerland", + 'country-www' => 'ch', + 'lang' => 'French', + 'lang-native' => 'Français/Suisse', + 'lang-www' => 'fr-CH', + 'dir' => 'ltr', + 'ms-loc' => 'frs', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'fr_FR' => array ( + 'country' => "France", + 'country-www' => 'fr', + 'lang' => 'French', + 'lang-native' => 'Français/France', + 'lang-www' => 'fr-FR', + 'dir' => 'ltr', + 'ms-loc' => 'fra', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'fr_LU' => array ( + 'country' => "Luxembourg", + 'country-www' => 'lu', + 'lang' => 'French', + 'lang-native' => 'Français/Luxembourg', + 'lang-www' => 'fr-LU', + 'dir' => 'ltr', + 'ms-loc' => 'frl', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'fy_NL' => array ( + 'country' => "Netherlands", + 'country-www' => 'nl', + 'lang' => 'Frisian', + 'lang-native' => 'Frysk', + 'lang-www' => 'fy-NL', + 'dir' => 'ltr', + 'ms-loc' => 'fyn', + 'ms-cp' => 'CP1252', + 'google-api' => false, + ), + 'ga_IE' => array ( + 'country' => "Ireland", + 'country-www' => 'ie', + 'lang' => 'Irish', + 'lang-native' => 'Gaeilge/Éire', + 'lang-www' => 'ga-IE', + 'dir' => 'ltr', + 'ms-loc' => 'ire', + 'ms-cp' => 'CP1252', + 'google-api' => false, + ), + 'gl_ES' => array ( + 'country' => "Spain", + 'country-www' => 'es', + 'lang' => 'Galician', + 'lang-native' => 'Galician/Galicia', + 'lang-www' => 'gl-ES', + 'dir' => 'ltr', + 'ms-loc' => 'esp', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'he_IL' => array ( + 'country' => "Israel", + 'country-www' => 'il', + 'lang' => 'Hebrew', + 'lang-native' => 'עברית', + 'lang-www' => 'he-IL', + 'dir' => 'rtl', + 'ms-loc' => 'heb', + 'ms-cp' => 'CP1255', + 'google-api' => false, + ), + 'hi_IN' => array ( + 'country' => "India", + 'country-www' => 'in', + 'lang' => 'Hindi', + 'lang-native' => 'हिन्दी', + 'lang-www' => 'hi-IN', + 'dir' => 'ltr', + 'ms-loc' => 'hin', + 'ms-cp' => 'CP1255', + 'google-api' => false, + ), + 'hr_HR' => array ( + 'country' => "Croatia", + 'country-www' => 'hr', + 'lang' => 'Croatian', + 'lang-native' => 'Hrvatski', + 'lang-www' => 'hr-HR', + 'dir' => 'ltr', + 'ms-loc' => 'hrv', + 'ms-cp' => 'CP1250', + 'google-api' => true, + ), + 'hu_HU' => array ( + 'country' => "Hungary", + 'country-www' => 'hu', + 'lang' => 'Hungarian', + 'lang-native' => 'Magyar', + 'lang-www' => 'hu-HU', + 'dir' => 'ltr', + 'ms-loc' => 'hun', + 'ms-cp' => 'CP1250', + 'google-api' => false, + ), + 'id_ID' => array ( + 'country' => "Indonesia", + 'country-www' => 'id', + 'lang' => 'Indonesian', + 'lang-native' => 'Bahasa Indonesia', + 'lang-www' => 'id-ID', + 'dir' => 'ltr', + 'ms-loc' => 'ind', + 'ms-cp' => 'CP1252', + 'google-api' => false, + ), + 'in_ID' => array ( + 'country' => "Indonesia", + 'country-www' => 'id', + 'lang' => 'Indonesian', + 'lang-native' => 'Bahasa Indonesia/Indonesia', + 'lang-www' => 'in-ID', + 'dir' => 'ltr', + 'ms-loc' => 'ind', + 'ms-cp' => 'CP1252', + 'google-api' => false, + ), + 'is_IS' => array ( + 'country' => "Iceland", + 'country-www' => 'is', + 'lang' => 'Icelandic', + 'lang-native' => 'Íslenska/Ísland', + 'lang-www' => 'is-IS', + 'dir' => 'ltr', + 'ms-loc' => 'isl', + 'ms-cp' => 'CP1252', + 'google-api' => false, + ), + 'it_CH' => array ( + 'country' => "Switzerland", + 'country-www' => 'ch', + 'lang' => 'Italian', + 'lang-native' => 'Italiano/Svizzera', + 'lang-www' => 'it-CH', + 'dir' => 'ltr', + 'ms-loc' => 'its', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'it_IT' => array ( + 'country' => "Italy", + 'country-www' => 'it', + 'lang' => 'Italian', + 'lang-native' => 'Italiano/Italia', + 'lang-www' => 'it-IT', + 'dir' => 'ltr', + 'ms-loc' => 'ita', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'ja_JP' => array ( + 'country' => "Japan", + 'country-www' => 'jp', + 'lang' => 'Japanese', + 'lang-native' => '日本語', + 'lang-www' => 'ja-JP', + 'dir' => 'ltr', + 'ms-loc' => 'jpn', + 'ms-cp' => 'CP932', + 'google-api' => true, + ), + 'kk_KK' => array ( + 'country' => "Kazakhstan", + 'country-www' => 'kk', + 'lang' => 'Kazakh', + 'lang-native' => 'Қазақша', + 'lang-www' => 'kk-KK', + 'dir' => 'ltr', + 'ms-loc' => 'kkz', + 'ms-cp' => 'CP1251', + 'google-api' => false, + ), + 'ko_KR' => array ( + 'country' => "Korea", + 'country-www' => 'kr', + 'lang' => 'Korean', + 'lang-native' => '한국어', + 'lang-www' => 'ko-KR', + 'dir' => 'ltr', + 'ms-loc' => 'kor', + 'ms-cp' => 'CP949', + 'google-api' => true, + ), + 'ky_KY' => array ( + 'country' => "Kyrgyzstan", + 'country-www' => 'ky', + 'lang' => 'Kyrgyz', + 'lang-native' => 'Кыргызча', + 'lang-www' => 'ky-KY', + 'dir' => 'ltr', + 'ms-loc' => 'kyr', + 'ms-cp' => 'CP1251', + 'google-api' => false, + ), + 'lb_LB' => array ( + 'country' => "Luxembourg", + 'country-www' => 'lb', + 'lang' => 'Luxembourgish', + 'lang-native' => 'Lëtzebuergesch', + 'lang-www' => 'lb-LB', + 'dir' => 'ltr', + 'ms-loc' => 'lbx', + 'ms-cp' => 'CP1252', + 'google-api' => false, + ), + 'lt_LT' => array ( + 'country' => "Lithuania", + 'country-www' => 'lt', + 'lang' => 'Lithuanian', + 'lang-native' => 'Lietuvių/Lietuva', + 'lang-www' => 'lt-LT', + 'dir' => 'ltr', + 'ms-loc' => 'lth', + 'ms-cp' => 'CP1257', + 'google-api' => false, + ), + 'lv_LV' => array ( + 'country' => "Latvia", + 'country-www' => 'lv', + 'lang' => 'Latvian', + 'lang-native' => 'Latviešu/Latvija', + 'lang-www' => 'lv-LV', + 'dir' => 'ltr', + 'ms-loc' => 'lvi', + 'ms-cp' => 'CP1257', + 'google-api' => false, + ), + 'mk_MK' => array ( + 'country' => "Former Yugoslav Republic of Macedonia", + 'country-www' => 'mk', + 'lang' => 'FYRO Macedonian', + 'lang-native' => 'Македонски/Македонија', + 'lang-www' => 'mk-MK', + 'dir' => 'ltr', + 'ms-loc' => 'mki', + 'ms-cp' => 'CP1251', + 'google-api' => false, + ), + 'nb_NB' => array ( + 'country' => "Norway", + 'country-www' => 'no', + 'lang' => 'Norwegian (Bokmal)', + 'lang-native' => '‪Norsk Bokmål‬', + 'lang-www' => 'nb-NB', + 'dir' => 'ltr', + 'ms-loc' => 'nor', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'nb_NO' => array ( + 'country' => "Norway", + 'country-www' => 'no', + 'lang' => 'Norwegian (Bokmal)', + 'lang-native' => '‪Norsk Bokmål‬', + 'lang-www' => 'nb-NO', + 'dir' => 'ltr', + 'ms-loc' => 'nor', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'nl_BE' => array ( + 'country' => "Belgium", + 'country-www' => 'be', + 'lang' => 'Dutch', + 'lang-native' => 'Nederlands / België', + 'lang-www' => 'nl-BE', + 'dir' => 'ltr', + 'ms-loc' => 'nlb', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'nl_NL' => array ( + 'country' => "Netherlands", + 'country-www' => 'nl', + 'lang' => 'Dutch', + 'lang-native' => 'Nederlands / Nederland', + 'lang-www' => 'nl-NL', + 'dir' => 'ltr', + 'ms-loc' => 'nld', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'nn_NN' => array ( + 'country' => "Norway", + 'country-www' => 'nn', + 'lang' => 'Norwegian-Nynorsk', + 'lang-native' => 'Norsk / Nynorsk', + 'lang-www' => 'nn-NN', + 'dir' => 'ltr', + 'ms-loc' => 'non', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'no_NO' => array ( + 'country' => "Norway", + 'country-www' => 'no', + 'lang' => 'Norwegian-Nynorsk', + 'lang-native' => 'Norsk / Norge', + 'lang-www' => 'no-NO', + 'dir' => 'ltr', + 'ms-loc' => 'non', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'pl_PL' => array ( + 'country' => "Poland", + 'country-www' => 'pl', + 'lang' => 'Polish', + 'lang-native' => 'Polski/Polska', + 'lang-www' => 'pl-PL', + 'dir' => 'ltr', + 'ms-loc' => 'plk', + 'ms-cp' => 'CP1250', + 'google-api' => true, + ), + 'pt_BR' => array ( + 'country' => "Brazil", + 'country-www' => 'br', + 'lang' => 'Portuguese', + 'lang-native' => 'Português/Brasil', + 'lang-www' => 'pt-BR', + 'dir' => 'ltr', + 'ms-loc' => 'ptb', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'pt_PT' => array ( + 'country' => "Portugal", + 'country-www' => 'pt', + 'lang' => 'Portuguese', + 'lang-native' => 'Português/Portugal', + 'lang-www' => 'pt-PT', + 'dir' => 'ltr', + 'ms-loc' => 'ptg', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'ro_RO' => array ( + 'country' => "Romania", + 'country-www' => 'ro', + 'lang' => 'Romanian', + 'lang-native' => 'Română/România', + 'lang-www' => 'ro-RO', + 'dir' => 'ltr', + 'ms-loc' => 'rom', + 'ms-cp' => 'CP1250', + 'google-api' => true, + ), + 'ru_RU' => array ( + 'country' => "Russia", + 'country-www' => 'ru', + 'lang' => 'Russian', + 'lang-native' => 'Русский/Россия', + 'lang-www' => 'ru-RU', + 'dir' => 'ltr', + 'ms-loc' => 'rus', + 'ms-cp' => 'CP1251', + 'google-api' => true, + ), + 'sk_SK' => array ( + 'country' => "Slovakia", + 'country-www' => 'sk', + 'lang' => 'Slovak', + 'lang-native' => 'Slovenčina/Slovenská republika', + 'lang-www' => 'sk-SK', + 'dir' => 'ltr', + 'ms-loc' => 'sky', + 'ms-cp' => 'CP1250', + 'google-api' => false, + ), + 'sl_SI' => array ( + 'country' => "Slovenia", + 'country-www' => 'si', + 'lang' => 'Slovenian', + 'lang-native' => 'Slovenščina/Slovenija', + 'lang-www' => 'sl-SI', + 'dir' => 'ltr', + 'ms-loc' => 'slv', + 'ms-cp' => 'CP1250', + 'google-api' => false, + ), + 'sq_AL' => array ( + 'country' => "Albania", + 'country-www' => 'al', + 'lang' => 'Albanian', + 'lang-native' => 'Shqip', + 'lang-www' => 'sq-AL', + 'dir' => 'ltr', + 'ms-loc' => 'sqi', + 'ms-cp' => 'CP1250', + 'google-api' => true, + ), + 'sr_BA' => array ( + 'country' => "Bosnia and Herzegovina", + 'country-www' => 'ba', + 'lang' => 'Serbian (Cyrillic)', + 'lang-native' => 'Српски/Босна и Херцеговина', + 'lang-www' => 'sr-BA', + 'dir' => 'ltr', + 'ms-loc' => 'srn', + 'ms-cp' => 'CP1251', + 'google-api' => false, + ), + 'sr_CS' => array ( + 'country' => "Serbia and Montenegro", + 'country-www' => 'cs', + 'lang' => 'Serbian (Cyrillic)', + 'lang-native' => 'Српски/Србија и Црна Гора', + 'lang-www' => 'sr-CS', + 'dir' => 'ltr', + 'ms-loc' => 'srb', + 'ms-cp' => 'CP1251', + 'google-api' => false, + ), + 'sr_RS' => array ( + 'country' => "Serbia", + 'country-www' => 'rs', + 'lang' => 'Serbian', + 'lang-native' => 'Srpski/Srbija', + 'lang-www' => 'sr-RS', + 'dir' => 'ltr', + 'ms-loc' => 'srb', + 'ms-cp' => 'CP1251', + 'google-api' => false, + ), + 'sv_SE' => array ( + 'country' => "Sweden", + 'country-www' => 'se', + 'lang' => 'Swedish', + 'lang-native' => 'Svenska/Sverige', + 'lang-www' => 'sv-SE', + 'dir' => 'ltr', + 'ms-loc' => 'sve', + 'ms-cp' => 'CP1252', + 'google-api' => true, + ), + 'th_TH' => array ( + 'country' => "Thailand", + 'country-www' => 'th', + 'lang' => 'Thai', + 'lang-native' => 'ไทย/ประเทศไทย', + 'lang-www' => 'th-TH', + 'dir' => 'ltr', + 'ms-loc' => 'tha', + 'ms-cp' => 'CP874', + 'google-api' => false, + ), + 'tl_PH' => array ( + 'country' => "Philippines", + 'country-www' => 'ph', + 'lang' => 'Tagalog', + 'lang-native' => 'Tagalog/Philippines', + 'lang-www' => 'tl-PH', + 'dir' => 'ltr', + 'ms-loc' => '', + 'ms-cp' => '', + 'google-api' => false, + ), + 'tr_TR' => array ( + 'country' => "Turkey", + 'country-www' => 'tr', + 'lang' => 'Turkish', + 'lang-native' => 'Türkçe', + 'lang-www' => 'tr-TR', + 'dir' => 'ltr', + 'ms-loc' => 'trk', + 'ms-cp' => 'CP1254', + 'google-api' => false, + ), + 'uk_UA' => array ( + 'country' => "Ukraine", + 'country-www' => 'ua', + 'lang' => 'Ukrainian', + 'lang-native' => 'Українська', + 'lang-www' => 'uk-UA', + 'dir' => 'ltr', + 'ms-loc' => 'ukr', + 'ms-cp' => 'CP1251', + 'google-api' => false, + ), + 'vi_VN' => array ( + 'country' => "Viet Nam", + 'country-www' => 'vn', + 'lang' => 'Vietnamese', + 'lang-native' => 'Tiếng Việt', + 'lang-www' => 'vi-VN', + 'dir' => 'ltr', + 'ms-loc' => 'vit', + 'ms-cp' => 'CP1258', + 'google-api' => false, + ), + 'xh_XH' => array ( + 'country' => "South Africa", + 'country-www' => 'xh', + 'lang' => 'Xhosa', + 'lang-native' => 'isiXhosa', + 'lang-www' => 'xh-XH', + 'dir' => 'ltr', + 'ms-loc' => 'xho', + 'ms-cp' => 'CP1252', + 'google-api' => false, + ), + 'zh_CN' => array ( + 'country' => "People's Republic of China", + 'country-www' => 'cn', + 'lang' => 'Chinese', + 'lang-native' => '中文(中华人民共和国)', + 'lang-www' => 'zh-CN', + 'dir' => 'ltr', + 'ms-loc' => 'chs', + 'ms-cp' => 'CP936', + 'google-api' => true, + ), + 'zh_MO' => array ( + 'country' => "Macau S.A.R.", + 'country-www' => 'mo', + 'lang' => 'Chinese', + 'lang-native' => '中文(澳門特别行政區)', + 'lang-www' => 'zh-MO', + 'dir' => 'ltr', + 'ms-loc' => 'zhm', + 'ms-cp' => 'CP950', + 'google-api' => true, + ), + 'zh_HK' => array ( + 'country' => "Hong Kong S.A.R.", + 'country-www' => 'hk', + 'lang' => 'Chinese', + 'lang-native' => '中文(香港特别行政區)', + 'lang-www' => 'zh-HK', + 'dir' => 'ltr', + 'ms-loc' => 'zhh', + 'ms-cp' => 'CP950', + 'google-api' => true, + ), + 'zh_SG' => array ( + 'country' => "Singapore", + 'country-www' => 'sg', + 'lang' => 'Chinese', + 'lang-native' => '中文(新加坡)', + 'lang-www' => 'zh-SG', + 'dir' => 'ltr', + 'ms-loc' => 'zhi', + 'ms-cp' => 'CP936', + 'google-api' => true, + ), + 'zh_TW' => array ( + 'country' => "Taiwan", + 'country-www' => 'tw', + 'lang' => 'Chinese', + 'lang-native' => '中文(台灣)', + 'lang-www' => 'zh-TW', + 'dir' => 'ltr', + 'ms-loc' => 'cht', + 'ms-cp' => 'CP950', + 'google-api' => true, + ), + 'zu_ZU' => array ( + 'country' => "South Africa", + 'country-www' => 'zu', + 'lang' => 'Zulu', + 'lang-native' => 'isiZulu', + 'lang-www' => 'zu-ZU', + 'dir' => 'ltr', + 'ms-loc' => 'zul', + 'ms-cp' => 'CP1252', + 'google-api' => false, + ), +); +?> \ No newline at end of file diff --git a/core/tree.class.php b/core/tree.class.php new file mode 100644 index 0000000..00e9a72 --- /dev/null +++ b/core/tree.class.php @@ -0,0 +1,224 @@ +$array = array(
    array('first element', null),
    array('second element', array(
    array('sub1', null),
    array('sub2', null)
    )),
    array('third element', null)
    ) ; + * SLFramework_Treelist::render($array) ; + * if the array have 1 elements i.e. array('title element') the first element is the title (no children) + * if the array have 2 elements i.e. array('title element', "E45AF"), the second element will be considered as the id of the array + * if the array have 3 elements i.e. array('title element', "E45AF", null) the third element is the children (array or null) + * if the array have 4 elements i.e. array('title element', "E45AF", null, false), the fourth element will be considered as an indication whether the node is to be expanded or not (by default it is true) + * + * @param array $array list to display, each item of the list is an array : array('title', null) if the node is the last one in the tree or array(title, array(...)) if there is other son nodes. + * @param boolean $reduce_develop to enable the reduction and the expansion of the tree with javascript + * @param string $reorder_callback if you want to make the tree (nested list) sortable, please indicate what is the ajax callback function to be called upon sort. This function will receive the array in the $_POST['result'] variable. This function should return "OK". Otherwise, the return message will be 'alerted' + * @param string $classPerso a CSS custom class to customize the apparence of the tree + * @return void + */ + + static function render($array, $reduce_develop=false, $reorder_callback=null, $classPerso=""){ + $rand = rand(1, 10000000) ; + ?> + + " ; + SLFramework_Treelist::render_sub($array,$reduce_develop, false, $rand) ; + echo "" ; + + if ($reorder_callback!=null) { + ?> + + " ; + foreach ($array as $item) { + $id = "" ; + $next_hide = false ; + $children = null ; + $plus_minus = "class='minus_folder'" ; + + if (isset($item[1])) { + $id = " id='".$item[1]."' " ; + } + if (isset($item[2])) { + $children = $item[2] ; + } + if (isset($item[3])) { + if (!$item[3]) { + $next_hide=true ; + $plus_minus = "class='plus_folder'" ; + } + } + $toggle="" ; + if ($reduce_develop && ($children!=null)) { + $toggle = " onclick='folderToggle".$rand."(event, jQuery(this).find(\"ul:first\"));' ".$plus_minus." " ; + } else if ($reduce_develop) { + $toggle = " onclick='stopPropag".$rand."(event);' " ; + } + // We replace the link in the text by a stopPropag to avoid closing the hierarchy when clicking on links + + if ($children!=null) { + $item[0] = str_replace(""."
    ".$item[0]."
    " ; + if ($children!=null) { + SLFramework_Treelist::render_sub($children, $reduce_develop, $next_hide, $rand) ; + } else { + echo "
      " ; + } + echo "" ; + } + echo "" ; + } + } +} + +?> \ No newline at end of file diff --git a/core/utils.class.php b/core/utils.class.php new file mode 100644 index 0000000..aa11f28 --- /dev/null +++ b/core/utils.class.php @@ -0,0 +1,346 @@ +read()){ + if(($file != ".") && ($file != "..")){ + if(@is_dir($path.'/'.$file)) { + $result += $recursive?SLFramework_Utils::dirSize($path.'/'.$file):0; + } else { + $result += filesize($path.'/'.$file); + } + } + } + $fd->close(); + return $result; + } + + /** ==================================================================================================================================================== + * Test if the argument is really an integer (even if string) + * For instance : + * is_really_int(5) will return TRUE. + * is_really_int("5") will return TRUE. + * is_really_int(5.2) will return FALSE. + * is_really_int(array(5)) will return FALSE. + * + * @param mixed $int the integer, float, string, ... to check + * @return boolean TRUE if it is an integer, FALSE otherwise + */ + + static function is_really_int($int){ + if(is_numeric($int) === TRUE){ + // It's a number, but it has to be an integer + if((int)$int == $int){ + return TRUE; + // It's a number, but not an integer, so we fail + }else{ + return FALSE; + } + // Not a number + }else{ + return FALSE; + } + } + + /** ==================================================================================================================================================== + * Randomize a string + * For instance, rand_str(5, "0123456789") will return a string of length 5 characters comprising only numbers + * + * @param integer $length the length of the randomized result string + * @param string $chars the available characters for the randomized result string + * @return string the randomized result string + */ + static function rand_str($length, $chars) { + // Length of character list + $chars_length = (strlen($chars) - 1); + // Start our string + $string = $chars{rand(0, $chars_length)}; + // Generate random string + for ($i = 1; $i < $length; $i = strlen($string)) { + // Grab a random character from our list + $r = $chars{rand(0, $chars_length)}; + $string .= $r; + } + // Return the string + return $string; + } + + /** ==================================================================================================================================================== + * Create an simple identifier from a given string. It removes all non alphanumeric characters and strip spaces + * For instance : + * create_identifier("Hello World 007") will return "Hello_World_007". + * create_identifier("It's time !") will return "Its_time_". + * create_identifier("4L car") will return "L_car". + * + * @param string $text the text to be sanitized + * @return string the sanitized string (identifier) + */ + + static public function create_identifier($text) { + // Pas d'espace + $n = str_replace(" ", "_", strip_tags($text)); + // L'identifiant ne doit contenir que des caracteres alpha-numérique et des underscores... + $n = preg_replace("#[^A-Za-z0-9_]#", "", $n); + // l'identifiant doit commencer par un caractere "alpha" + $n = preg_replace("#^[^A-Za-z]*?([A-Za-z])#", "$1", $n); + return $n; + } + + /** ==================================================================================================================================================== + * Convert an integer into a string which represent a size in a computer format (ie. MB, KB, GB, etc.) + * + * @param integer $bytes the number to convert into a byte-format (ie. MB, KB, GB, etc.) + * @return string the size with a byte-format at the end (ie. MB, KB, GB, etc.) + */ + + static function byteSize($bytes) { + $size = $bytes / 1024; + if($size < 1024) { + $size = number_format($size, 2); + $size .= ' '.__('KB', 'SL_framework'); + } else { + if($size / 1024 < 1024) { + $size = number_format($size / 1024, 2); + $size .= ' '.__('MB', 'SL_framework'); + } else if ($size / 1024 / 1024 < 1024) { + $size = number_format($size / 1024 / 1024, 2); + $size .= ' '.__('GB', 'SL_framework'); + } + } + return $size; + } + + /** ==================================================================================================================================================== + * Sort a table against the n-th column + * + * @param array $data the table (i.e. array of array) to be sorted + * @param integer $num the n-th column to be considered in order to sort the table + * @param boolean $asc the order will be ascendant if true and descendant otherwise + * @return array the sorted table + */ + + static function multicolumn_sort($data,$num,$asc=true){ + $col_uniq = array() ; + + foreach ($data as $val) { + $col_uniq[] = $val[$num]; + } + + // We sort + if ($asc) { + array_multisort($col_uniq, SORT_ASC, $data); + } else { + array_multisort($col_uniq, SORT_DESC, $data); + } + + return $data; + } + + /** ==================================================================================================================================================== + * Copy a file or a directory (recursively) + * + * @param string $source the source directory + * @param string $destination the destination directory + * @return void + */ + + static function copy_rec( $source, $destination ) { + if ( is_dir( $source ) ) { + @chmod($source, 0755) ; + @mkdir( $destination ); + @chmod($destination, 0755) ; + $directory = dir( $source ); + while ( FALSE !== ( $readdirectory = $directory->read() ) ) { + if ( $readdirectory == '.' || $readdirectory == '..' ) { + continue; + } + $PathDir = $source . '/' . $readdirectory; + if ( is_dir( $PathDir ) ) { + SLFramework_Utils::copy_rec( $PathDir, $destination . '/' . $readdirectory ); + continue; + } + copy( $PathDir, $destination . '/' . $readdirectory ); + } + + $directory->close(); + } else { + copy( $source, $destination ); + } + } + + /** ==================================================================================================================================================== + * Delete a file or a directory (recursively) + * + * @param string $path the path to delete + * @return boolean true if the dir or file does not exists at the end of the rm process + */ + + static function rm_rec($path) { + if (is_dir($path)) { + @chmod($path, 0755) ; + $objects = scandir($path); + foreach ($objects as $object) { + if ($object != "." && $object != "..") { + if (filetype($path."/".$object) == "dir") + SLFramework_Utils::rm_rec($path."/".$object); + else + @unlink($path."/".$object); + } + } + reset($objects); + @rmdir($path); + if (is_dir($path)) { + return false ; + } + } else { + if (is_file($path)) { + @unlink($path) ; + } + if (is_file($path)) { + return false ; + } + } + return true ; + } + + /** ==================================================================================================================================================== + *Compute the md5 of a file or a directory (recursively) + * + * @param string $path the path to compute hash + * @param array $exclu a list of filename/folder to exclude from the hash + * @return string md5 hash + */ + + static function md5_rec($path, $exclu=array()) { + $md5 = "" ; + $text = "" ; + if (is_dir($path)) { + @chmod($path, 0755) ; + $objects = scandir($path); + foreach ($objects as $object) { + if ($object != "." && $object != "..") { + if (filetype($path."/".$object) == "dir") { + $toexclu = false ; + foreach($exclu as $e) { + if ($e==$object) { + $toexclu = true ; + } + } + if (!$toexclu) { + $text .= SLFramework_Utils::md5_rec($path."/".$object, $exclu); + } + } else { + $toexclu = false ; + foreach($exclu as $e) { + if ($e==$object) { + $toexclu = true ; + } + } + if (!$toexclu) + $text .= $object.file_get_contents($path."/".$object); + } + } + } + $md5 = sha1($text) ; + } else { + $md5 = sha1_file($path) ; + } + return $md5 ; + } + + + /** ==================================================================================================================================================== + * Check if a folder or a file is writable + * + * @param string $path the path to the folder or the file + * @return boolean true if the folder or the file is writable + */ + + static function is_writable($path) { + if ($path{strlen($path)-1}=='/') // recursively return a temporary file path + return SLFramework_Utils::is_writable($path.uniqid(mt_rand()).'.tmp'); + else if (is_dir($path)) + return SLFramework_Utils::is_writable($path.'/'.uniqid(mt_rand()).'.tmp'); + + // check tmp file for read/write capabilities + $rm = file_exists($path); + $f = @fopen($path, 'a'); + if ($f===false) + return false; + @fclose($f); + if (!$rm) + @unlink($path); + return true; + } + + /** ==================================================================================================================================================== + * Check if a folder or a file is readable + * + * @param string $path the path to the folder or the file + * @return boolean true if the folder or the file is writable + */ + + static function is_readable($path) { + if (is_dir($path)) { + if (@scandir($path) === FALSE) { + return false ; + } + return true ; + } + if (is_file($path)) { + if (@fopen($path, 'r')=== FALSE) { + return false ; + } + return true ; + } + return false ; + } + } +} + +?> \ No newline at end of file diff --git a/css/css_admin.css b/css/css_admin.css new file mode 100644 index 0000000..e69de29 diff --git a/css/css_front.css b/css/css_front.css new file mode 100644 index 0000000..3f3e6eb --- /dev/null +++ b/css/css_front.css @@ -0,0 +1,337 @@ +.code_hiera ul li div:hover { + border: 1px dotted #ccc !important ; +} +.code_hiera ul li div { + cursor: move; + margin-left: 5px !important ; + max-width: 680px !important ; + border: 1px solid transparent !important ; + position: relative; +} + +.code_hiera .page_status { + position: relative; + display: block; + float: left; + height: 12px; + line-height: 12px !important; + margin: 3px 6px 0 1px; + text-transform: uppercase; + font-variant: small-caps; + font-weight: bold; + padding: 2px 3px; + font-size: 8px; + line-height: 8px; + text-align: center; + background: #E4E4E4; + color: #999; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.code_hiera .page_draft { + background: #c0311e; + color: #fff; +} +.code_hiera .page_pending { + background: #FFE6B2; + color: #9A7A3F; +} +.code_hiera .page_published { + background: #33BD00 !important; + color: #fff !important; + } +.code_hiera .page_future { + background: #688CAC; + color: #fff; +} + +.code_hiera ul li div .page_actions { + margin-left: 0 !important ; + line-height: 20px !important ; + visibility: hidden; + position: absolute; + right: 5px !important ; + font-size: 11px; + z-index: 1; +} + +.code_hiera ul li div:hover > .page_actions { visibility: visible; } + + +.page_action_delete { + color: #BC0B0B !important; +} +.page_action_delete:hover { + color: #f00 !important; +} + +ul.tree, ul.tree ul { + background: url("../core/img/tree_vline.png") repeat-y; + margin: 0 !important ; padding: 0 !important ; +} + +ul.tree ul { + margin-left: 10px !important ; +} + +ul.tree li { + margin: 0 !important ; + padding: 0 12px !important ; + line-height: 20px !important ; + background: url("../core/img/tree_node.png") no-repeat; +} + +.code_hiera ul li { + list-style-type: none !important ; +} +.code_hiera ul ul li { + list-style-type: none !important ; +} + +ul.tree li:last-child { + background: #fff url("../core/img/tree_lastnode.png") no-repeat; +} + +ul.tree li.minus_folder { + background: url("../core/img/tree_node_minus.png") no-repeat; +} + +ul.tree li.plus_folder { + background: url("../core/img/tree_node_plus.png") no-repeat; +} + +ul.tree li.minus_folder:last-child { + background: #fff url("../core/img/tree_lastnode_minus.png") no-repeat; +} + +ul.tree li.plus_folder:last-child { + background: #fff url("../core/img/tree_lastnode_plus.png") no-repeat; +} + +ul.tree div.loading { + padding-left:18px !important ; + background: url("../core/img/ajax-loader.gif") no-repeat left 3px; +} + +.highlight_placeholder { + border: 1px solid #A1A1A1 !important ; + height:15px !important ; + width:200px !important ; +} + + + + + + +.list_code_legi{ + list-style-type: circle; +} +.list_code_legi li{ + padding-left: 15px; +} +.date_slider{ + font-size:70%; + background-color:#EEEEEE; + text-align:center; +} +#legi_recherche { + text-align:right; + font-size:80%; + color:#DDDDDD ; +} +#legi_breadcrumb{ + text-align:right; + font-size:80%; +} +.legi_p_puce { + text-indent:-10px !important; + padding-left:45px !important; +} +.legi_p { + +} +.date_vigueur { + text-align:right; + font-size:80% !important; + color:#BBBBBB; +} +.date_slider_highlight{ + font-size:80%; + background-color:#DDDDDD; + font-weight:bold; +} +.lien_contenu_legi{ + background-color:#333333; + background-color:#EEEEEE; + width:90%; + margin:5%; + padding:20px; +} +.lien_contenu_legi p{ + font-size:90% !important;; + margin:0px !important; + padding:0px !important; + padding-left:20px !important; + padding-right:20px !important; +} +.art_in_hiera { + font-style:italic; + color:#CC2900 ; +} +.p_in_hiera { + color:#222222; +} +.art_in_light { + font-style:italic; + color:#CC2900 ; +} +.p_in_light { + color:#999999; +} +.hiera_light { + color:#B3B3B3; +} +.notice_legi p{ + color:#B3B3B3; + font-size:70% !important; + text-align:center; + font-style: italic; +} +.notice_legi a{ + color:#B3B3B3 ; +} + +.ui-slider { + position: relative; + text-align: left; +} +.ui-slider .ui-slider-handle { + position: absolute; + z-index: 2; + width: 1.2em; + height: 1.2em; + cursor: default; +} +.ui-slider .ui-slider-range { + position: absolute; + z-index: 1; + font-size: .7em; + display: block; + border: 0; + background-position: 0 0; +} + +/* For IE8 - See #6727 */ +.ui-slider.ui-state-disabled .ui-slider-handle, +.ui-slider.ui-state-disabled .ui-slider-range { + filter: inherit; +} + +.ui-slider-horizontal { + height: .8em; +} +.ui-slider-horizontal .ui-slider-handle { + top: -.3em; + margin-left: -.6em; +} +.ui-slider-horizontal .ui-slider-range { + top: 0; + height: 100%; +} +.ui-slider-horizontal .ui-slider-range-min { + left: 0; +} +.ui-slider-horizontal .ui-slider-range-max { + right: 0; +} + +.ui-widget { + font-family: Trebuchet MS,Tahoma,Verdana,Arial,sans-serif; + font-size: 1.1em; +} +.ui-widget .ui-widget { + font-size: 1em; +} +.ui-widget input, +.ui-widget select, +.ui-widget textarea, +.ui-widget button { + font-family: Trebuchet MS,Tahoma,Verdana,Arial,sans-serif; + font-size: 1em; +} +.ui-widget-content { + border: 1px solid #dddddd; + background: #eeeeee url(images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x; + color: #333333; +} +.ui-widget-content a { + color: #333333; +} + +.ui-state-default, +.ui-widget-content .ui-state-default, +.ui-widget-header .ui-state-default { + border: 1px solid #cccccc; + background: #f6f6f6 url(images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x; + font-weight: bold; + color: #1c94c4; +} +.ui-state-default a, +.ui-state-default a:link, +.ui-state-default a:visited { + color: #1c94c4; + text-decoration: none; +} +.ui-state-hover, +.ui-widget-content .ui-state-hover, +.ui-widget-header .ui-state-hover, +.ui-state-focus, +.ui-widget-content .ui-state-focus, +.ui-widget-header .ui-state-focus { + border: 1px solid #fbcb09; + background: #fdf5ce url(images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x; + font-weight: bold; + color: #c77405; +} + +.ui-state-active, +.ui-widget-content .ui-state-active, +.ui-widget-header .ui-state-active { + border: 1px solid #fbd850; + background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; + font-weight: bold; + color: #eb8f00; +} + +.ui-state-highlight, +.ui-widget-content .ui-state-highlight, +.ui-widget-header .ui-state-highlight { + border: 1px solid #fed22f; + background: #ffe45c url(images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x; + color: #363636; +} +.ui-state-highlight a, +.ui-widget-content .ui-state-highlight a, +.ui-widget-header .ui-state-highlight a { + color: #363636; +} + +.ui-corner-all{ + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; +} +.diff_del { + background-color:#D19275 ; + color:#8E2323 ; + text-decoration:line-through; +} +.diff_ins { + background-color:#A2CD5A ; + color:#2F4F2F ; +} + diff --git a/img/banner-1544x500.png b/img/banner-1544x500.png new file mode 100644 index 0000000000000000000000000000000000000000..2ba702af860c90923feb0b64685251fce81ea45f GIT binary patch literal 223493 zcmd42g;$$R^FIv10+d2oUl;x2`fphb%nmr|g(TPa>7SfRKS2*urk zyxheN*ojv6g(wGh&BoeCJ+S$^&E)# z)Uxxrl=kU?X{n+BL3#Y=liyjE^3;Ouu4v$if`Uu*&leRXD~J545z9+SO%7`Xiv|aU zsh@T0>r)ergRZ`ptecCAjjPwwPZSi{cQzJYHrDjM4qo>33QB64)?7ANC@AzON)TyX zzlHryrxd1EZ)U$^_r%e!yWc`Ss>R?7{9D=v>LZ@V)d zja~%km32!Fum=={Ey$c1v1PLVUlVHKhR|R4Ndr&@EA-rsk*nQ5+T`P91-Avc^ z=){gBsE>Dl0T5!T03XrVDGd!;y}E%J@mGqA3IZYRU{4Ca+R9OZ`8tw z0a`f!?;`e;JrG1|>8Jg>dOiM7sbiSz3;IZCdpkx&tZ*gh@wPhj$5H4N&Ilz)JilRJ zFZg>1M%)`_*|o83lIjPqFMyu-{;~Le*Crl$y9d*)F-Hgxw1QDt5zQD*KNANiA: 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 z z$MeOgwkwP+=~evv+xyuS#8Vgtk)kfTs<$9d3YAZf^f}u?Pkb5p{p-t7f1{9&Ec>`?yv4hez;rue5HGZryPBQknQ~wmmCS z9QG?ZB%aUfMQER_?ZB_`7md~eI@d_~?0V%sNy;&MoSN1JjW^`+ORXk5yl@@`;5Sym z>;OeGvPNV2N4Q z#_U##Mvl`&j}(ahEiKFf?&MnvE*NG7QmaLFC;niPbvSOXy0mV`+O6CM(X78X*4%oC zin+Y;{g_8`gglO*jOE2mMh3XM-ymC6{isB7EPNyR1E(9PVd$LVS$WgLcL~$fr+S(n zQF=sC`lma$o7K%e!nvVG=y?A@AdKWxPQR!XU4ZiEH$cfdZwDD{BY6^_`jFZ>QO(2z)(>(h1LC9}(ze7&K{9bA5& zqEZr>q4 z{z!ewkr2W4``Z3OMikm2m%{8zefY zV6!kuI&fF7@8Wu{=54%pl-}#W>MC1=rB-S)`YKsCw@d=aHWSw9-%i>#XrWfv-W~$c zCsT!2aLmxs;92-~bm5GPC`HAwtEmZMFpf>o7fbH{3aVR+fvj#aKF|#TdcS#0IqQ%i ziae9qSR8)Od+CPi3ocL`qTCmHKF05y>R`8Vwjv? zW^X3uvmAynn85B|l3gP~zV1>BPE!l=sFPapUh>!4o=v)WYO$6SAqVRLos+Ds%ar3j zOA4lws$t&HWe2mAESN0YJZXD_LkJ$#L;{JHI#v?Gn9jBQSV^R83U`tRyN1IFb%)Ff zB`tXP&Uv`~Vj^BmGntLPnmdM;;d`ETXK^xhz!w8IUo9`sT$CSNWVl#3LMhnE!UO3A z;YkN&jev;N?g;np$WNGZB|$TCP>BP_3$I3rPVQJ|bo6ZmTg-ey++zy!5dHVtjyVz} zN5QL{M(?qk(k*OSC~JAwJ_?uc>w)Iy#P%*J!0{oh7N&?~H%j!=GRYL`wBWt~5({oE#xRn2QY4zs^?2k$#Ag$q*Eg$d?A8g`)uO-_KCw+Bi%7f^4{{ zKa!?U5@r)n8m89S>&?;;O=SB-^S^84w`!=GFzuD3I{+ECBZk;e4Np0Ya~Wf6?@7?1 z3fAXHb_TX3Uo{AOYE_5#TCR18@?=uiP-Jjf;qRG(w+W)^pBGr%osh-lGE^Mcu_IX`vvj95_brv+t?6I zO-X^FyYO7kkbU&Kv@Vxkze#_WvX3_@X?9wc4OJE3wSN6R$ zkpS&gD90_v9mWHWAoIUzoVt{`|Iqerjz9dG;K^8%eBb&%avQ!Yb$%#l* zKWpbz?=O7QkoymTju9j{n0*FVay0ojPM}N7!DO##V!qCQU_AAn+?WoAkHb02%H#Tz zbynOR_}lNIBpyMfkn4OPx4&CEQ5W-^i|Kkj@paSv#+7ZIW>i!S#x{^=Vl=wxOmY`+ zfxJ2ecX3du4oXD(tQqd6g!o;WZ@gt@ zFyyL@_DpU2gwg41ZE5IH;vTf`GjTG_EOroL*}5~=H*_?2w3sqDYDPML<~N-6R_46d zcK-mDb21xIh-uN)!c?V1^2gaGGMzeFx1n{E4mQ2E51NLspkmorSS_ZCEXk8Pxh>pT zFScdLu>cCZ()?sz@%}s}wdvF$U4BltyBv+Tkzeh&12^KvCYi1OWbn#b2@S!_*A(@} z)z_@nPal+8;6gGuJiq8al}pt;+Q2nv-4U%CB zc>`v<95=J4-(n}h6_PJ@*48G?QSJSq?rvmnlz5_0Q(aZGXYdSPIcbVCSfnbzcU9cDa+><4!u@q)kJsCE|>zSkl!;gJnBv_N4EZ4KGL z)|UH>Ay~bVm6FUDA7ZthxXQ^~L#SsvEpuwTdy=~4Ndr7$!%7)r1xdQgwgWXqM8Qc+ zt{Q@@)b3_FX4W+*bGvUoOvpKotXqN81pP#ZviBCT<9vxa(RG>uo#ab1lA5h|4=^Yo z$iYgcax-^degOx)rt~)ZQ4|)Wsl8ZF@|FpUJc%HE%c5rxX1k7*kY~|g?MKdAjH0E* zb@LLtLpVYW0Yrua?AOg{(((5T&Uo-Y&H$S)SQ*ENdbMw#q{!KLa4t+fMx4|~t<~?t zGVZTccsdWO^)q!D-&whcKA!cc2Idi|j8Y+ZY>3|ls6OjQ6KWp?Zy<2Ke1O-nv?zF_ z>E6Y8$XhN8P!Y_t#amhdw6KDOO?z?yA8%(J6fEL!Rgt|F?`X)G`bFh zB)E%dd23Zw^&i`lSX{;NJ>p#fU-ziF0@YFc7C>c42=PQ_fWM!J2N6quCSznz&U6){ zQMm$~n?>(+!fr126tFm1#yvqB^+&?tk}3S8OoMD@YK%f)Lwpoj1d{;?tLD$&jM^VT z#(if?llsa=MKe#ok4vO43Po>xjEMyq5&jDDlZd$>lBnYd1}7n_%q0SRIx0L~GzVci zhC=b687^{LX;8@guWA+j*l`bKKc0i4yv<=m=w-~+5{cA5gw=&AyBnWp`UE;}3jw6~ z+xVjt`Nyuv-!rIDuH)jazJ6Fm#)YAvy&+5@=rt50@~`;Qo6LL`8c29?#w}} z+7PQ&CrET-Bn3Fe6-J9^#Es*<*oqyjn1jE`?Xd8&R*%x?Q5Vc$L#k%zFLtkDc%X=tW~Ga zsS^`XtqE^wakk;{XwwIuR6jz4unxIt+3f5@H^Qh+ONb}B8e%hQKpLo>VRI+=qR177<-=BzH-RfXnUy)6yRn1ue0PQ~VgZe`oq7QtsKhumL+ zCcqiXW{`9BeTnwHUswWmx$3opC9c=0FDZNM%;4L!IfPRk#?Awl(w1_RWikW+=h4d>`cyx*_8RHk<> z<<9A+e_Ff6#8|*aso58SRI!r+3IX#riWt3gV#DCVdnN6jr3}cU0;TlExWEwYDs3&sA8j+$Ra{!ReBnabpij&>Yz!=%_A3$(f{)fxYCS*?! zWaG(8boER`LNloPTB=`!XqX@Q#udi8*tL*@xHOtV=f@yqaLnIVvA}JK{5G(w6)KDz zL1gF%nv}Hgt-%q%+wzXTOH$!P1Q%)?#?TGcqKNkeIAir6xp(SNQY6=~9bI?S`!d(WW` zInmV{dGw?yg_5qy>p-8#dGuwjcXM0nR<}G!2Vx%1&vE2LjMN?Y8y{*)KFBUYdDnD zck6(+)65h?7>zqdjis})wzhSC?)dL^`q{Fa$Jlx7xeWE(00 zexQf_Rfy{$6^h-NSFDPU8wOhvIXI(HVy(VJk)L&HR4p6`bMk@>6_L~s36Ij$q&LLt z3u4{t)c&eB)}h@{r_#;v)ZjC9r)hWcxL&=aS?S|Ok>3@YQ&sFx0EN={yb!P^ zmi~6*ERZMaFY!#}gH`$EOlDmT^qQ?szq13?4Rq=x2mZ3ZH|3G4%=9}$s2Sz~JBj*b z-7Kl%AOYU)9N;z^O(FdV*vrF=&d(yxKRGsT5>O{9ciBkoyq|7}Kr)V0C{yp#BQk48 z{-XHpv#~&nKL(%N@NPPL`k2Z`I+ff-jO2z-p}Sx$^IDnUzeTRRk%rU7%l;~Uer{Y$ zw_2xS@k5(x3?J*>bFXPy=C8{g!t#o!m*3~4Cl1yWE~1wsp;FO4K+~S6rMsB-6>nDE z*D2^xth0@Hm%rD4IoZd$W2R^sVzzg&26bh8IW1@z#KL7OurMzVDrmj?nfbX!gS)@? zX&W2dYGR{kV1PW^CpS6K^uTE%3a=*pjUk1v*2^h{m19AtyCHLycub*C6v>D$=D50XP~9Tc{(5zMb8Yp2 zqba2@;0{Pn8y{x;a?0JA49tX5H;|VJPxuTkOQSrZ^#>X#LTo^tWxNh7S-|WuvBjg6 zjz1HrYDS;kFqS7t<2%I&uX*ATaq|lt!=0hN7+Yf=W-rVSk~K<}?dw*0y{g7LDvf@B zA95?Jkq|9y{|UzvN_;e3dl^VphVFBEc6_7>8k93@b$XS(No6Zb*&eZ{>^sEtKS9*F zxVu%F<0ifQXo^Up%Rk@6l9;b`@Z{tJzANYgy zaXC(HIQ^XAk)%~KK*=Ilm~lz#%{m;9oj)IrR%~$d-wg%6Kf?~8jluwv{%31nv_DG zzNpbp3yhMUd<^rSdF7bbp(`{%obfJBsuNJfZVJ~`+ai{; zK(lI~i@ZDvP;37(Zn$&F8D9jqDBAFAO%M%xyA%!TT=?iwiyK{i#Es5-ZQ1I^Ebgv# z5f?e#9>F^G5BjA2Z^W-Bjg(>SsC3u)2)Mu*{WaF)3wkZ$cK$yiQva63$MIYYg#NZ{ zmWR6;<|mwi5bfQ5JbgmAS#s-W)cJ4&!DiKDJ8K@K&htUF=Y97x6)lldMXj4(7iWyd z91+KJm+-A8vA-HF##F+fVDelwkWcb4t4h2p#e%BJ)mcdZl$A6IdpB|%0;*w4Ruk|T zH7Jt7^7-cd_p~Pr`v`ppO|FW_!yyX8gN4h1MNVaHW=^ok;F9`$p~u*2s_t5Bv_*dy z++Ppw;$2@{k~D5L(%`YPqpDtXU${mMW|q`4LtNU)?qI89rg7i;T;PuGz!DHnV0{RC zgUw)uV0oU0%PuHk$gsXXQbN=F13evqoRx0b+#4qiHzcfClz}F2iBuec`1iQ;E3@=X z60F_4j2tZ^+C>n*@|6fr`9E?EFAtrTSPPj4G zDpC_TF!Zo0fQq<%$(4_mKg0dr@Fc^vyHNzZG(-%Tui^)XXKtdCFJZo z5oOO@H+e}pO0-j=hndp{1Bdm-n(VNcKi_TlZ?^6GoHp63$tbIa0Nz6afdU zyr{WU9Zt_N#%2up3K)r*hnv9rJCc5Zzih|Y9l`i$d;8ubg+>op2BHw6SK<@E6j1=z zt~tNhkQ83;spnB%3#GF?X9i;9Q`9Qwwj-s35Vl8_6@WGIzp(&dIO@8mLm4`CyG|O4 zybKxTm-Fejf)1%-#OOJgH^7~Bzi$c_pb}d(bezuj=XTeg*Ad7bomGhqC~6`dUIAd- z!WC3(6m<_?vp`(AfcJScVse8Z-hc*%TGEWsN-3CtEqP%=dqY+7DPdL9?PCc zh;7CWCXRUk<8*Z7qcgHXNrP6Ze!JY`;@LJ=; z_zwx7%r#vMRYNZAcdqjHdPJq{$WDU$XES zo#%Fl?Ej7@{g-MzOw`|N7&1W@cs(<0f^2Ve~tG8I;zmUJiSw z;V{nLqL+dbYZUJ9p4`bsvbvEeJ60HFg_-`a^w9XBm%VHUff~Q1rIXo$tW_$CK_cu{{8pRYt2uMUsOPQ$X zEo@eqBq;H^gAPlKdP{lzMtv5~fg9n9N$`(;zfIBrgIj8DkvYG-+H?cg1M5CpR+7=m zo#$~(jN_{5ECuqx`lgPI{~qm?lC82Fsu6d zuC6-)mYyZC8}i{wu>bv#SQCZc`6~Ev>)P#~-`2_)-L8exzW~hkf|GW*=Z$Yz%>2^1 zb}f#V-L`URAwG~7NqlU)Km*G`tOeuL0G*fv@kEk(ITfKUcj=wxxS8K`nRe8=`Td6{)H4vRx7HCWXsUYT zaYd6&_^tHjcnnj^vH%F#f5}QG>`A7EQyXcyN!sz4W=EC$NJ7Q2nFly1U(SYE-b~KrVY3A0 zYv`b|z9sl1RiyO$xy6GL16!H_2~m_Pi9or5`1PFr_4nehWgEVaR8Di@f#l?Zk8RGl zz@zL0Ps7iPV`od)-@;(;vXZ#l8l8FXpxwzqG$o@g0C8KQN)-;Uq4oVU4qi zDb<_LO=8TiMXncL+qTZ;S^+q6? zPC5RM+JILJ+LBgIkUR_LKS`te!2b{+ulc4T|u{Oxe5trbTU2MQHEQcg*-e3&BYs zXIFtW-B7JQv!(8R16YX2e1gk`<-#b@7X&LuA$#X;#KpXc==oEO-(``}a_=dP~RP%W!9W5c3CkpbTb1R<) zvMUP_Du~(1#3kYjCQKZ|fgj{5ww2}vJlM3es7W-3E6%`wdWb##wGR2@_&F3G{9_~+ zyjtS5L4dSJ{2AxU*Z(4DoI3ACgJwg|U;vt{KkV7QBe})A?Rp4wR5bQK{&h3scmU2j z@?t8Oa%BNCqG)Vxe4-b=BnM44+jsNJ5);2{Nq7?IvHHL{>SGygy^%f%H9Xz9RoDnU zP)L!St#9h>-h6N*=Mcy}T&p{lQOvjXi+s3Q$)tQ1y3)9(?Zk<28lSqt6?F!EdZu?w$-4dc`0B}=f?Fw zOE!o?(dmz->X*fck;n)L#+jTmo*61_$EYN<5azq`oDvdtX>?Y0l>|i?Z!}%qQe5d%wZ~Kfa zcZ@OnIpo7aviU5#8X6No=BdgZtZaEKpP|DfwF$2cPc%e_Z-z@wh!tRDzeRAb`oQ5r z+N`k2NKDPr82tOw{`!%3n38K;NsvYjno1Vv-Pf+}ra5NP7dC!$pJR#V-w&Py2cag0 z$3_mn+{AU)_qMWd-#*s~;d%&x)Y|8KN`QuNi~%Zn`MUeBCJ=cgM8#;uqE<-&KK6CZ*U#%XxU=V_g{f5Hf}n<6j9`P7#ES)IqdRwy zVJgTZ+J*UBpw8ORn?*Iew^?*dLonV*m;wt*3^VF&!-X$DL6y>WJ6}rV-Q6m9;pGwY zSoDc!bpIoN!G=%gOrP*s$1N|lOM}`$u@gu(Y<&5xwo7l!aty4LC7^WFTo%+KMx&Mx z+i0@c!JOC`WF%M{ze#zyQuttVM5@NbY z=2sD`N$jx%#)Jd^idA8+~f5|Y(h!o#PSh~zk3yM zroY3^GQ6pS9qTQ`k=n--mHXGUMtvC9r#H29`jL<7$MM;ef+Q0+C279jUU$~e3eU@{*>?)$CwjNkJm$@7+NzR?V-MJk5cpg2tkKfgi zkjdnb1DD#b+P@wO3+!LdHg5i_P`3AF_r7Ucb>9D4jJ6$gRh+1=K1y#p zTE@~i7bUeQdT9MI*?-=S0|BDVKj?0>E0G8oq1qq9yyXxaQrlDV{cx$>^Z0YVL{hY2 z;QLl4$7gq&tzKp)Ii4)Jd=kgGMDfC~9@YT$3uqaoEg_|&MLfPhH@os<#WR(L)oZ8!ND5pcX2cr6`D0$
    • klRUXp5p4J;UTR$HT^d~<1pe?G!uzoR1Lhy;U^u&yW zy*|wQBX4D{9wPlAr=Dwfn`D-xzms8b&v^A{9<5A{@`8nq;O@)F&h}b}-3sWJBis$Q zhwG;#6Ny}6F^bxNhXxi2K5PpFxO}_DQ?4(Y3(bCMtBoVs#o+a>qBw)~)^aUOIM)#! zCO2v%)SML!DA< z??qsY(t||V95#%%-Xhhk1niQVFJh_+K#1>1t)2~T>VK}{&sI{OXNgrsIMD!h>O$iq zAb3co>2t0J7Uu8GZ0%BsPyxi>O237qTWEtWqpZ%ZwS>j^$MhRM2wpFCNwAt@lZ=Ij znR2}&G&;>M+uR3?z2t+Aa`P#RiZ9x=kh|)E=;a2;DOvXj{!!&#N6s5rMhf;;4-?`H zdH|n0wadS4@O9@#_=?G71u5K_;(prXEMDrMW_Bqt5m&3JaL5tN_)TQ62t^x|qFF`^EYrx0_ zRVQA@_mqj}h~roA@YcTt;*}caBf*9yPKvA$xD$g)61esk*5R2Q8n0X$8PplFIKml7 zKRVyeZ9&^CZS<$<8Tzqw`$(HebJRAphCC1}vwZ?k`U<_IGnXMU12F>6E!1$+2;K;1 z2)I2e>qy=R$i;O>jARj!4TTW|3iEhVtKkGgOl5v(n>R~KrRT2G;L`R~4N~&c`)|D2 zGq_n}@E1ytjqUml4!#lggTr<_ps&`?<@nmue4cXs(&mQUSbysq^;cK;T0oY5$#cEJ zq}+gPLwkt2$kig1h#$HLgt7$cFbaSpv0Ym_b}ho+q>T;K(`nBUkotU@?@#EjeOyaL z^Zd}zw(BTLpLAb*IpdV;oYm<3v;^Ztz-6M}cn7daQh=yeL5W+}%rK4#ar3sa8-rVZ zN72c0T&(b&KYXKuba+u8lD;p@{nGb_$cg^3;dKEa_Yw+_V>I!xs5XAkE#um!K?!%+ z*opdrjnTv-x#9+R=F^W=EUd0(t4nLWL(lyFx=HV>&O2}^dnFMz6$hAY>mg``B9e*T zD?^Ym841OQX^YITWT}Z+f;H`3*wI;)HMR&$bv1CWMC|T+jQWO$EqSCaQ}$>Z5r+vu zLjWeXdouK&9gCL4*5o(+5T(t=`v3+(w8xCE3 zbEWeDF;~@MMzm1J?ro+*utQt?*Hw~Fezwe15LFVWI+3P`CZPzq|Ho)S_fV9iY-FoM zscMb{%kxnpZ*?=}Q>0-r+|tAHAE@P#`iZ>u=xbISDsR*mXjW2W$syHDnWR{?$tNiV z3UyA{qZm`RWjng6T*R>Y6vT+yDma|yF1JgIw6$Mg1H`|;#E=;Sev?z=eDDF5_Xxm; zB4n`~ys6DgKda-A*Ao9`;5Da3(fNri--Sei_h%n~EHqp7qYTUH`24rtH` zlcxstlD`HyRuXoteMnr1Hin4Vr@uVbCZ0^ou$MapFYH%|LgBrzhFZ7B5iS84JW~#f zpC6y*<0RuK!ioTcCw5zr+O=##)r*b}yN^oS+HTR#-2vXy&I%c|StbQEy#o9wTKo`% zGp<%GFNi}5@^HANevf$1t2&pSh!|R+xNBND%#{crR!H~ih}GDuL#899=n4#gsXpEc z=RN_{Mo9Fq4Isy4Gp3B{o&9T;!ElV}74u{}8mQ&vY3;KJlGm!1&1XQWNaVIyzG?c4 zZ1bB7x!N5@mlhICz-R7vE5MW%0bxYF_Uh*^gct#C_TOroF;g3sBlwKU$t3kppbG$} z3}h!31|AV>h%fGdS)7;7273+iMqe8VBfs+oZY(9GMMEtAzZvVTU8~AmZEs(3 zPR{h}OW^^;ba$`HB&yU&)YVc_-Bs`rUbMgtE}c{7TZAiUHE~I-knT~$UEBoF^jhN4 zV%Vh9nfi7`BZ?04kZj7H6sFkdC3=+MKwY+QFCcbpsmg_O9GZ}jH<0&>#JD`_MVlEE zwVjUm7V)0CFxUyqq~(FJZw0t&lgLY)#>e6-=gD%&%iRp_$-&2xd4Sj_mWEnlZVspC zXtUVfZ!!r~rR-i6l;VQQ|HtPv#oi)Xko(v*N^O-ise)T#G+#iSp++0X$R zDkIinySAkop1+BEnhVI$sp$FcsPA1KNXMEdL^T0DA`zA$I``#Io-B$7L8UOXw{HEh zeH6!O2}V(q=)|80eV3IXR`R-}U@(*d{cx0!tRQe>C0LP;(wGtvlJy0jpL!!WDCo+K zK4BTH0J2vbCGa3j+AVFRoSZb3st1PR_mp`w6;IaV>qJ67E^Os9Ro~^>qR|_e%4+Pf zN7IWc4ZSTL95$3suUo4-dRR7SQQHgk2M2G%W~W(E-c3-G7!x7x;$UP;6#5duQr7lZ zLI?|25(t=V)bh@<)^1)aKBuZQXAxGvwk#upEI-|k*VDWCFLGJtBngpNxG5Re26d*)YkinPAG_5E-OF=Y(T!kOY&(V-JdM+(d_ zE30)!-!z?)qY7|VLTRd7trt!_GB{G%QGnn{%$8ADw=*yb$Sjc-K%3*wdWBDM0;jihm zi*d{7j?+fQQbrosuMSLuN1g7KcT~*|hzK((3dMhqB>tZ~_FoC@JxJ#^Y$PnZt7om7 zxA41WdAkP%4f@>k>6xcr8eLu`RP<7Fpz?ZOGT>VMTcCRX)shCN5RarV0a!SyVCQ+^ zs;^5b2ju%wV|PUE@ei_cInhCmAalwKKg>HT_`TB%ZZnLpSCu}GKnpBTlf1W$_q-8$ z8qH*oiFD@ni=Dtk4yF`(MyE%_^N` zo9CcLz0HOC-%t*Cu-n`unW%l(sMH3xhH&W#%_-A^hvA~1qt9pcpw%E%S~-=+r{Vxl zkT0=5{LcHyf}=WCfVxvMU45@Rbp(>9WbWnqT_~+V&aoT89(YiJ__(XbWZO=3xkDmX zrNwi>rQ|Wx5g=8bbJoypH-kr16b> zgIMdO|MZ*MLryaMc_J{#DGx))oDQ)Vr|uh(R46lwB_<8;7do*dM!~Ii%*>!`iTZ#o zXt4}V-T%acj_;W>mInzYr8_d_wAJk4??W8sv$8Os4Sg*X5qGxvez=~A&O^(--BCe| zTr`2lTWtr+$KmFq_6t@F#G-%AYH_Xu{oZD5>T{BIyq7w(UjgAWW-CaX@c>bt1jx~b zXzmye_WTK8u<=9^>@Xla4Rp*irQz||IMvmsrLd-38<~sB=q`u{d|h@1dR|6aa?P-Y zd{=)xiN4lnFT?QstiS~1>4+l3YZid%W_PV33&5TypR`ldgj*7WRdWuRjHg0OmQUK` z_HM;MmdDAkIYaICdfI^LSXTwdA#fwjYeT2xf2UBa6jZ#g%*%-erJD0+n}L`PhkE(e3Sl*xNt3&%vTk=dla$ zn~Ak?&3XN;AGz!s8xdH}JJ+-rB*)1T9BstSXcP|#%dFon{~e>t2*-UDbQM^~0-lCq z+C9MT^22Ns6XHR}Q@k(cb4eD@`lXun&c$`47oc2L4G?pg$A}Y3gKw}7fgP(}^HUuo^@*(R6aCZDNs2V;xk zNJ4`)d!_J_wmmRsQ3C%b#x=nTp-MTcYlb{^Nn4ub6}w$NCtVlXl)JXq8oN3XJh6^-vW)o-Iz>82!_zZ-wW7dn`wuqmN~Ot{+|8f zB#LJf8ticFL!6GOJW6xW<4HLFBun(Bl7@4l2?*G5B zX1l;cN^(B;!kaJm{?Fkr_wMUkqEG+A_&CdTeE)_yW}VvmA5&jxbllz?Qu$Y$vkh3E zJQbT1)%U;LhWU5)^q5pJe@k=>H zQol}IzWsg$`Z8AL8Yw!TjN`YCRWwTk{UkCUfKsIie_4~_r+QbBg|VZ%Y96iuQZ48~ zZNkySKpQ8@qT?JjFB-(Xi_~d^z%dbV|(2$w_tm)5fZpS_8`ikp+I>5tZswSv^1rl27 zx+qc{JM2iZ^1@>6$fF{JCl}2@^tEqZe`CUVdQ&wnE>}5&r(&|47O0i`B(1G}<7tQg8i_p0abq z{n^XzOdoS_@0uqJ;Ut06Lm_*!Fpg!S9+BU4pl9G6;_zfgen@je#+Hx{6fHY*j+ zg}5X3dOt3D^1Pbxt7}^ENT)w`@ZITWY!y}FQdhpGWt3sc%xyV#h&DnMBiJ;gOaKm( z1%LbkY4ZAO|T?5+}ZO)8p`zYc;-%Fbk(ew`hN9BA}7NCZByhqyN+1+q7HNgWC zrv96Cner;cr2BnU*s~_!0{m`*a&UfLiXmcFFGSXdb5|@~)M0S=?9KlvK}sGZS9Id& zqPDY#gj5Zz+*iC#0VDHJ?(1Cv-!$@~Hf!s^N+V%qYIJMRFm*Q)!u5lQ-}9Y?EHx)I zTJ-rGyXm!2DI^H~1PX}j)TN8>q zhXU(~;XeqnJP=&j{YAu!ac|MKErRx4uWSB#x6)?%*?HzWclZGstT_(xQbSy^7lT`m z^?)0AXKW!~u$idS13Q6dRD8NVExRcnfVC8V^YX)&wQ~k0);{bsNWY$6+P8qNf;S>| z-QH?AJKJ9>7{Aoc5#B+xH+Yu8%<2aS2B*!lIjl+_nS6l7kB zxU?&Ikb$HmhZ2`OO8vRZn`~kUIyP=qJ||1`A!knK@$sDYdH&`8YXGp}y{;^^BfbXU zGxrvK&&fuY|Gx7p7k?H~6yKz|(oO)n!NmClb!Hv}VeYzxuVJA7sywvq!yS$W4-48E z>w={z{1`g&Y%5r2=h=q*Lq`lPeQ|5huo%BwxDyeMo@Mb}QXknH>u_e>%|Kl2d*`~H z{c8b?TsAtRc<8d09Wwpqa!MXpL}RE8s>j*=u1+1)2~0}>Gj)X2V?~i8FoLGZhfa#L zkRx@+d0&5XACzO?*8^#>*M@DHrYX<_YQm2xL%Jhqi^gp{Ls5#{xgLc=3Bw@U2G%ZW z#zc4kB8jF?`etQkEP;k#DI#%i5fh9#@dr;CjyB_pL_Dm{d{+(3W2QWhabQHPgYhsW zN-$}8dOjo^Hd06ByAbPFga?`@SNimS+6%^H0swX_&+}Q>E24u~_o~f0Xu4#URm7zd zv7(^S7BjeDLJNIrH=u!wp?z4iQX6v$?!oGYI}i@5=h7#e;GIRF>Um{HeU%?Ockqw( z%z>Rb>#u)Tr+_%%;!qcZ$dlB*lQ}Ephd5Ww_2wCm1ikr5pTPghXae|)H;{CJxIq5_zzQ)O6peLp;!Rr?E2s=K4lcpt)~Sppc@G_@bHUN7cn& zfZWE@bH}RPxzU1oS0@VyIB+7gFBs7J)1VKsy8_J;%xvMbtNzn|+ghr36ydvbNzI5V zMT5S;|KN8vTu(b{l#!SU51%B}NeEUkxT5;a|1PKbnZBKy&qm#FKmXXV1}Nxtn5%R<6^W+vC}CGx+*RTz z|M%ml?P|Q^nx(Otd?EvFJL%QRBX8t574ctFidzfCFRSi>+z(rYxqg9jJPn!bcJNaN zXJ`B#jNBiZ9*6vs*C#jLQQHTNi3ETywIXY-WZ0Ce!~Ftz0oSfcDP10koQmI^cNtr6 zGB=o}^DvKAz|i+2>r?u2eG}nsz($^r3O1)&9=d*2i3TC(Ncx4a=krouJF?dM>IgA1 z*R{1P;3*%OGJy>rSEM0i1b2u4WRXE+Mg-HsVK(v(Dpz4lX8ioxzh~_q+*MMboYT@Q zDHe>|rJpDWJ|C}Bk{mUSOB;_!bB|~d@58$pSj!=nc!4+Wl?kPTOlABb0Uyyh3VuXD zMyNOVB)MOQrd~PIq@Wl9(2%+1d*ubi=UNRE;OXm4z%J*EU-5Yzi5D>hKhdjm@?RV? z%I#8p6_N3B$6v22{nTRcFx1PF!%6Y~I=is!L(9{X!S;3`uD?J!A5*zb+jI{f_=mNa z+led2Oauz`V(KKFO{ z?RR^U2-t$M)aULmckna+=f;=NiX-mntt<#&jGmePRjTjh=H*$$?%SS*K#v|(>x>Ny zYgr(Kw`}mxBYwfIYK?IIBtn^>w-lpd@d0N0zRM}xCd}?0QStyZj%ef9&kKnrn=s82 zvmlg9Y5kLvh_)}RJmGg@NGDs9wk0Jit=)b6%TiB1^Ly5YQ#v6LW4#Nc4TF}Hc8H#Q z<%`kV>wl{)abs~fZ*NX5_$0|vM8)6+(wtlgot^x|JrRg}>i}F{tLXR;Lijyt&pYvN zVmKsfIF`c5|2p3Wzxn7*{gX!xDvrfA17yzP_oFCF2z^@&wnhttwtunykGKE#>H`1t z_6fN4PIpDra&)PI>vf7vruvPIxYVj^iwhe0@UxDzWDy;gnRCMV@wWzk62;EEEM6Hi zxpnp_eYid?slO&qT?-p_0?-JAR?up|Z{?g;$8HP)tC#v ztT2*tauS74CXYM~0napF|1dDza4s)>vei{Wze4{%EiUFUThgRdqQKK za-f_y3g2P^{UL_9Rw#aHr`xX(^0`3OK<#udaG_V8X+OLQUCxkbQxMht$SmoF&x&v4 zz3~w1l_enfzpH)yC~M2utU zKzPbI7$qZ~cGeJj6A%#A^{2e6zji&&%aNVEL_``T8@pKZdOIoE^qo0?n`8TNd`1d1Xh!f=13mP z^MpRn87TCMQh2BHd=JJEdGQ4J_lgyYb90UQ3y-G3K^;x5W6xtW*&jc&Jdi;_bxx6- z$Y-C-h?|CD!awp;wWIr~&83Ct=&E5j zuoKDm-wq*{ZQ2nQ*x(>&$4OVMur0|rW7xVSweDZ|tb>ag0rYCgYzOK*fA#hf{>tEP z^r6?}zwk8iJtYPJ>ru^;$u0#dS^wOgY*L(GYYoCft0IdrV8%r$x4PrM^X74aiXDvG z)r8O?dywrATuL) zaw{Z+AT`HLC1(z(MD;WZZBxQXdFKn=LoH6f0DElr3vI8RRBq3yLklEHXr(4*01-FPiDnbyVmKhANW& z)X*_Bpmr-!0|MA;nt@89`5G~3Oqhcn{h|qHQ!KJDna9QRTOq6b!+x3Hnw!Q6>X5%8ejk9lxa@>GmCc_ihF-bMywv&{#_vC_{K|he zLMHrJ|9q0Q7wi+4#*u)RJG89EF-cdrMt2ki{O)sh#Myew+i{%x=b^mAC%iGNBB%N2 z<5Iw1;4*Fani(g{@DfPo=$bR& z98ltJYHQ6$eZ>9FKIkW_F0r;Wmca_K0|myFkxZN~1Ej%+th+(Ynt)RsKiDe*S39t@CA^W4$g^ zn#sxvlq^C4IE(X5A(K2RqC*(bba9?N)O`v?-NCsiLq@wpJGvSyK)gnxkD{g+Ds= zM8&o(Pqy2+Dl;9e#qi}_*C1njKblVV%n~GSE0w!^>^{3)kva4Gh#S2+EXHYD0682Z z#dL`c513wH@ZnL7+;3-8YM&49{9Tm{gVkAs`|MhM;zM}n5&(zDE%@+H7LJMNY)GQE z63lq7FCoVQAWpfF8qlNrPD!Va?*q&UUrp8olZ89w39;s%<9ocFM6N2j;b^ojUg2Of zX6)vefh_BVd52?a)ta{_zt*H)kjq|=+p=Mj4M`$8`}n+HEC}Eva}CncDKnKQfYH4q zl>ipm17rgF*%yUeugQO$g9I)C3buWX4f521Djo*&c&eC1AFn}aog(6>EzSReji0#w zd6>A>Vz66&jOaOvCn9wIiAn+t4Nk$g*~DzJN0}kg*Ui=J*rMqgTmRe;6b6iXO-v97 zXK7&lrnas-Y6BY96;rQM;nLpogkEKi=V7cAA@YHZb1LZcKLS;fdQ?NH_vE_5$f%I# z+|mkI4wYv^GJnxz9`>fv(HRq0#ZQW6^&ZNd|5-LSrc^F`~A)g($A%xPT3u_jMy*nZ0*dSx|x@&FPn9v~CN( zQ2q6lh7o>*yebuX5`?&vQ+%vMJ6lr6=qij1{o?}u87;cC*(d{;_eQM5qW6Av0>jld zUgHaYI$_T5)l((lIU1pW>q$g49h;t%u!J%vZ=wJEkM48GbJ7j}M-2ABBlO>oM? z9TWxT8+_Rp)gncV_QF)Q8|~|pZCr`h)Gs_1|2bqcgy57@2!Rm5Q71Cmq! z0MJA489W|OsV+ncsEBE zWTMSmf!%e8ha(X3`DRON1C4#ry#fOacjjgGX95b|(W5_rY5{z6*fbZ6eun&LhlMe! zmbKIpbU*kol7J(xa?c5WweW^{KerU}nsow6@G^@LtB8yO84>WS*kG9?7PXjWB{p{S z7Zx3Vic3L+Q+ z-NB+6{)d3+=)~8em@#lSl0-;@pvflL5q~3@fy+Ps@QY#PovqwaS#`3Vi;rFW2 zgwc~%cR^VO`=V^@`8H+_btB?Udi%@5=->Y&I69g7U^~~ie*4&K>)@r zecXpsTaOeOyo=Pt#ypOTNMPu zyu`@L8u-fk>ziU7$^De`5)Xe-o?38jSbAx$jHOvxoHHZhyGg-i67Br&!vmCIg7|Np zyB3;Z4jQ>Aw9GIHzCf3=3!U0K(k?=pY9E}FY_ga+<0JubHcrdWemgK(E3fQ+V!X@l zmilo0xiRL9=U)Q?FCow%OG6z#V*Xu(poOld)=Av!=by1rPU@D7y*u z4^uo%!Dzhox0j}8G77{BjX@hAu@5ME%K>xAK;DqTpXZy5(_*iTv^#nKkcM1%T=jP& zAL#RxA6rojvX&aczgOC?3574!xWsJ102AUn>{>a^B0bPMTkMk_q{IR7lnO#&+Eh&n zHv4Qrl7Mc7M5V~1fl$A7o(2CV5ctSr?sBBzPsF*_rSl1nQ7_l5LdG_-gEv+Rz9U<0 z(dgVae!Fgpi`j8&H&51l|V z)k!8nNmlu@FElOJUzkx0H_3XREn|s4`s%}my`;aNIH@60#i#^yo9T=@@d!BGZ^3*YVq_G3K`Nv5u51(X_;F zlg3g1#ed|wd!9JSP#-GIAn;8Z-@fifrntJG=j;V_t?@d0h^Fg|G3LAaqSrFe(+lur z0amHSv|TSe=|8Fy*V;lA)+JncNoamctzJ$J#lSq#w?da?x*(vN*!R$FUiZ2PH{N)t zflVSQ>iI^E3%ayNd5K}tZiY@6J1wuRZ9bybX47>&o?Xu$`O-sXsPAgbHdU&Lb0syX zz9DdpYLy5p;@1#hZI1cP6tsafW*l>LZM?)hpVgx=a*WqI0JOw0><*(L-1x5ps~XW^r-b$aFXVdBs&l!gNyR!bYW>WqR3a?$Plef68S)2IwO zdd8)SkPpXW$DV~|5278;RZ8|Bo(*kI$?Zo?Ol-Byf zOw0fe`~j_a(RfXd&e?$8&W-c8f7j3#kH|b<)LFT^p0d^p@<&R?K~gsF@CH8GoaLL2{jf>$Nyb#sJeob1OXRn$ZCCjCDt ziEBd4>?bgrRL3qT!vT;|P9T(|s@n6O?9n$*HnBo?*L&tV?)m=bfm8}~ecb9|k7&yJ z*`6p1{z8JcrL_ivKAw@04&%<1%?52vuL0&?B#JJ-2iE49DdhPmqq5n9N+k$B+@M*xczZ zp;*OQJ3`3wnrJwmasw9yYc*h=d-tKQZD!l5Rd~+h(bXAm&GD_`cc1L3k#A&Tl2l(o z=KjC9V5BIe{~6W&rc6+HJ;md;Tgbu>6y{|{c_>y425VnkT?u0};@q%IXUk}RggY!; zb}k*&O|LfQubziCp4>rEa!8`Ct(+3oEVd_h%&-i~peK{yH&R7gRYcg*tt9jB#=pbO*<#fd zH=Q(R8`F;NeoO7ft^lA{)Fd-yS4}jNXhwh!mUjU5HJ>xFoZCp2I)}`sC>wh#T7P(R z(`8@gbJ4vDmXtb`wiYR;d^=ugD8MH)nFK7nR_hT*W1$;^;y}=Jy$e0XCj|cpmb&0) zy-Uj``(G`9lMRD{V`xe$-vI2CKid;{!^z0!Mb~h&Df;Ks7{i*pBBd733>$}r=B%YG zYQn#+1qazs``1n^v8!D;udd3{gIh)|SRAxR8(xq78)myPkV?awvDP^4%#N929l8)> zg3sSuRt-24n9^WWXVmc%J7}lMW~<1vB2>tI!aN`Hh1i~~Bzp-@Ri%o<-%`}W-%a0q zZS0P_s$#49gD4wP|5oC^c(#$E!fr{E`x6G=n*m>%`?N0a=1$5H{mNCXRETUmcpZLt zbmW5Hvz_n1aAxk4?SX(t0q9r9^q@8Cwv|B{&mzFuQ{*y-EDCR>ISO?IqPZLx-+0EmZ}?-QhIp)DAzc)>8jpW{ zyY5IBLjK^~c@Wuk=&TPhguM5V={1h^V6w8fUHr$)417o~OOV=yU3AH1yuyk3yU7%2SbH8TQ{HVy~7PcB+jpqJ35 zQd}JNDQ-yAOE?IwAH4yhQHqW_+sKKu;aW6)K2 zXT`Ah+oupwGo21fI`&z^!(3c*JHXxNww6RF6B#a;?j+;3n z(b|+mSr5{XuEZ%*=)tYJkRHG+Z*Mi~IC=DG7gB=Ebot+cys5W|vx6HRGMj(DHK3u0 zD=TDX33|O#?k$U`2`NwrCHv~aW6W=SmqNNJI=I%OhatJ#bZ7{LWy4NM=XdDN8#Qlr z#I$z^+~2?>|4K_r+5pi?F`M54V6?ohvImk@Tq94QY7Vy6zXC#^^jA?YK zwKSQ2yupCGuTGE({Ra+BGo$JU-! z*^T$*_>;vi^0*)0RLo){st)q$ueBflm<-}h7(vghZDfqcn1szqv))(J6G>n|jBhl@ zSqj2_Rvgqio^F7!q8qct-t7FxKS8ZO&XY1O0bqK#-vuC?;&yI!gmmKLGt%MxkL26OInz?e& zy;PM9Qr!7D$b~EJO$Gr~MLfjBC1`rk>T7ULMnl4^M!nEBVpVE{A?BJ7>~c(90Toy6Eqb#Ybn>c z=P=s+6UMrS(G<&=s6X5B6c4F{e%Fkunrin)m~TIrAH6jv#r&@dY8>Qf`to=Ul@MtU zqhUn#!|YNQVk!Z?z6LDVv%_d_k!B|>&9CaaOBWuUo0cM2NFL)jhU-6wXzLOZ^TW0P zK^9sO0k8AtcJ3QTqX9QdZEv9s?KX zvS?ee%0-qjg$3_icRfn|y%l+k(~@~afwU(ftM=pdS0|g{56wftNb;vd?}<==N_U?% zll~R+n0pBv=b2^$Z)6IFudgp20$i{AhHxdAs8lFCrKf5jM=I~82yj_A?5M(3!GYbs z8QQ1gQ^9z;J-CkC&w z8c~UnO$#>3HfR4m>Dx49`QdNKTm^*fVNI{bcP~}WE#@%Ba_~sfLWXF5kI@i+51UUJ z6V1QNL_vbyi4LEufjB+x-FJ2;Sl#6BLsX5LE<+;&Enc;7`ondf3ZhOv2j9_d3BSs& zC}#)x2tp4BZ!RgFJK_j@IMu8^OXNj^3k~+Yq;?XbK3I@I9&X*(^C_KOq6(U$B@2%z z`{qfF^0^;PX$0}!+@W^#X)($uOMS*W$nqvsGV;<_M1MZ|>_k;>y^Gc6(I3)7ZB*17 z7{`IY9=)EwGP4vcM8v@4agtHiYAt*Xnt4825wGFC5YDKQ-8$2RxC)d#sq~C-vnqzj zik!EPUq?kUMmF|(JmqU$tSND(J4H>3ik0$HgMX{5q#k>od=kS$X$f%wS~%0B>t^VU zw9{3X*QB!D45X!PowF^{3D#JLb6oCf)elQcCUKk1`?aqSOInTO9H}Tem>8~gB}b7^kqyyKU-oZ5Ib=Z3n5@FtHx{g})nUhs9> zS`Q_YG;PDxl8Bbz)n-&uRO$*dJw3YW=_!0@h1ti3_nGETF`aj$)g-#86LxdDfpL6% z%%rN#j4h7F<^rw^OH6Btk_6@JqroBYRs#-nJ3PLGB!Wc<--p(4<>We0iAe@*OzN(QS*LL z?V(NmFJxgO&qe5(Q~Z#BFP}dX3>(dbTPX*d0Daw$r+Wd->uLcQqcbQEu@R4mzw{B* zEZSr$G*%o{GUv9Qf3^n=J$$ zCAvb8sAHjxD`Fc(Ae%J?l|go47Mg&A=ig5 zNqJdfsA{3+&AC%{)aG+XqPM<;Nf5tM<6;VZT3LTvK?N~jR_|TjxvpOV<~BhgSB!41 z*>_6TgUW3m=Nq5jkxhL_8^2ugNgk=VTou9}b(m^GfDX?HmK7Qg#n+Xxg&&ot|D6_5 z%8s`f1EE~#QR?cngoQIqIL;j&_$Q>vkO!uPRa3a1iAj9kLP6gBJ`o~ z-uGFth=>UPk8~4KRra&J8R-3fUU09f>-LI{xWO!|46@ZvaBx0n~Q<4)FyCb=u?43_OYXn6ZcD zAn*^&7%XC{u#?{p9ak9`3WSLh*olYI*zJp6bgtrVG-Rn5OWd6+tLs@4!kyBm?ljqf{xUOz0x=RZ}ysJkEHN-_Y-OS?qqOJpFH8V}qm=40OXp zjBi%`SA02P-gFpG``VJF*Dnc5umzl+Znu*b9q?aLql%=GdMWQ_C%5t^;y>tUvkB)2 z9V}hM=i=&#^q+PHmd}ZX+rhTnd$d!CL)-pqn7lZGn}wHM>!@ zs<)=~8P5M!2%)4x9R4x#4$N=9#GACphBj^N9$kRr0j<(! z4A>rq{%evr8Z_0h_L-4M`K;4iGT3gw=Q1KqX_>UDyhp>*!ZyGV% zQhrvpb6WFWX86t9Ih)=7s)Ygpa4vmPv2_exx4Rw_>4;1Ig&h@@12E=#c$*q|&#y%^ zqH&J2IxgEKOQ*NXzo~uuSSQC`1gr;s#W|d8UCO~*M-BAs&eI%hT1S-Ty$4pzw1_I+ zF=z$41gw=xc@^kprAW$g!S+)m)+H|0ryi1WLfZUMX&ORz@QWeiEi63W_#jZfuTWkI zUcb=!1k4Mx$cfqlJg#`wTxS>wk5JBH>F{fd-fl`-PR(MtJSpAln>Kq85BwxPlxIy? zFEn3HnB|&q(N5$~CjWBGYu-@iF95JDu^EvJs4xhVe4(gab(U+0=a>Wad%TXg?!r01 zAOcGR+lQ25^A(J27>UKE^AaPv50O^G{>`?zWpSK8F^VRbrYP1Ya9+;>+zRstqfsn@ za>VP5oR_xL&tg#%bpILK{3n{}Nk@6MJ*^8|a2Ce1$myCBA4-s_`H=RAp2Ak)E((8z zSG>K>7eSi_l%3E`lcCfF$w09k3wk88(<>rSo9RiwTqqZdbQP{s7xp2qcv?UrCgYP` zX$@U;Qh3-F%;B5-P+-&2#y|M=)q4rAAP^9+oGgr0tVSG%8Xs#~vs^x@UHfO9jzcoD zx(|y_U^F%$Bek*Ptvc_CP}T(1cP05n?QF$N{$z*e3`MUhc&%A8l7vZ1sc3lmT!j}7 zFON?2^lZ^r*MVW=%{HRw0^Pc+?h{D#$IHaw9y#oN9B^l zS$G)l>7_DPR3O81JYyV5Ws}(ug$JU^<;09)5ISM@E?e5MN2KepjXGo?J>VIquJtskccAJGI2~L4D6wN z{gI{>HcTXWgUE~d7ev?fVcsN#T<9*-l(9YfyX7NTk!wVg1B3{NcvgIQQXJN-H1`Ti zu0Wsu<z9Hg+kP2S*9kRvIQiC<=$ zcz*n?V|c>G^qf@e#9@R=Vfut3F^Gm$8{z@>p_-_ymTOuei_3RCZSnT@Wqq9N!=u=} z!+D_hCfQ<=T~%eL0-}e)z{J@9yqyw$etD*e`ug4EK&TGp0}Ajh&3GUtI?G9t1OX9a zW9k+9q9N^3H+#B_%N|XYZUR`j^e2O5Ca;gV>5^ZxmVNu#6TkpFcdTxZEmD3t zXz`o=om@cJx9PA1+fO{`)z2!f+z0dD5XLv|nhBNrYdd8m-zA5tFT8khy!_*|sT@Hc0hEoBzHvQqvRV5KAs4n#J+YTkjc;-l4zi^$^ut zb}M(aMfP$o`)k*Za&-*{+u8JVCl3(mor2EZ8(hzHB{yngZxZ}Gv*CYPS25yAmQ6G( zB^h|bvbF!#9H z>HSINH(bEYYE=^X@nS1uDa+`KrI{$Sr8)SfXV;C5>~xaORqz=em#rDFyi9H;^2{JC zl&)_rPCDDbia>^zX6}1!?yA8a+l_|@7#D;533S+pCqb8!LYwxEqgYH-^L+B!C3m2| z>s6A=^zH4fc_++OroZd`ws4$eEXU&{)BlfNVB+?$b@J8KfR}oWz8)hZhdL}lnpj9C zv}#A@q5n~l9ralzTp~(7 zJQNacJ$@#yr!e;Pu!vCRoRxwV9BI9i14nGul8mU;h!u_^eJE{v<7~|^ zuD?m~CB2iKU*G8GG_jPzk6xZtD-dRVX+-ps%#bGNS4RP^=Vi?j$aaZN@~T4_yXcaB zQt49*Yk|}AgITdM+V|D62->dr`2$FPAiQP@Dcdn-;Lyn zw^Nz5My(x#SwHv8^X8vcWyVRRpVrh^5etHhZki^;bObjd`m6LLyBf}Gt}p9azKOrJal$+aJT-#8_u}JZRiuFO=qqUTXR4+a z+^t|__h$^dG|jzOFU<<`Z9rHu&**D`%SxDoE(;NLLR3z-dxG(1 z#@~PvSZZ8F9v$^va!)WoM4}-3?)UVXAb!QR76MWtlFmHOyPM4ZG3YUhc zy^HQed$-N{%d=@jOqv2>*>U&7Rs4-3wDlgdE81@3Ul75Gd;-!Pu5Dwp%AU32^ z)(ziSs*sSrjSS0V7t9t7WUgOf{07JK4K=(LOiGAVfN1}ya9l2)s@{7@R-A>I0a4I{ z%ULUdT+eHf1<auUjP`*o!T)^7Oj+dIHG?ZeE~(+oMI*{*eB?N?mBR6fia#m8el2IrVKDX5XS&{2 zoIArl&;)1pZR%8bsy`clWxXm_hC- zxi4=2OeC;B-z>;eMp}69#?>x% zXC{8(9~66mTVovQ!cb-tmf~x?g%n!+Yhpyej=61ZQ3L&zn?rG0O=}qIeI+ePWWCSvBEad4^+J1;(Xftw>naQdO)U_f)mW{X zjhwWQTL+texqkAWuFri8&slQbQ7m-5>8jbJhWeBHswrf?4LrrM(!$qWex&|1N36$` zsi|>x_wH~0T8QR(3Qxkt(Qswpd7>>-;|M74c<#WP6!(03tH|S9woYyjzh@>MMxeBB z8(l?X>?d^|1Vo()SuiiS^Y(wW00dKXY{?|jZ#6`HPF7xSk5_&Y6@#sy2UeKUqC~l( zQc?qZdwX1Na3s;`A=+qub6o%c{;G0aODlho=Vi)Mobl2TSTc8bw1^Tb0Y6NyRC^@1 z?4u`wdcK|rm+5(fG1YZPk-AgrlQ$Rq))c=~tL4K_i?n^dW-WW(P^-$|Ff+@1;R+_*1)NSrf*2`mxm`i5%Z47D3SbPiva`m-E9DzHk- zV)nYF8+`A&$fFx~9Ofh__ty*7BRjF}sdF^OD5Y)_De;2zT_#op+kO<|g4%e&=LlW# zExU}xesd5HwyTHYDSIY4h!aBZctf;nHmfHtr1ih54Ush+7#ny)VvuHH_q2R^r)@uy ze!ORHwQT)D8;;sIR$p@wM1nP4>tx|S!IA_>r&9;$D5Eum`NA(asyvea&a%-B+7H>d zJR6rQz2ygd{rfYgLY4s&ciYIjD?^-W*w)2N&u~siI4FLsGa-WzB3J8plg?QSZP?0@ z8yuf(Iw|Mnd-326p4p^|8TB$C;#&{^3det zSH|n>sW7jsV%1)NUVC0{?lC5kenzq8<-!p1!;}Nh*OVQv((hAZkyQtBtfAMGH-94# z*MtdpK+NDlt>;E{wC552TbtXSNxrX6wXHJMS7p0hA~dzMlCeF1-k-NzoJd97ttwA< z-4py6V9BTQr!D2Fyd0-M+$kkvs<=6yH;PbEiLG5Z5WeZH{UM}n{Mmni=P0WEmlX8) zJSM;?{aOfb2*3a3Fx~u1A_EeH>OKCLM|;g);~&+ztMEE!)ofbzFM>4C%|x;KYMTo9PT9IyNO(vG zUTSDEg=Phr*J?IPwl816&n4Te_Bn8uio=>I`hH#RvNLY)5zz6M3hKG50_*Q8n_!?*>~)6 zVQ2K`X-v2t2I=dOPfaC@S_r(j=$r(y)aL&%8>ysJUr;e6)>b3Ox#BUBIHW258M{ z!~u0SNW2|W`ePM~@t=5*85L^tSIF7*+tz19sOhF*Mq{9w?w#Z{O-;?K9ib))aR`1X z(JNRJ_v!ZBDeo)!pFb6RN}~^d%`z(-6PGrXam3XczvPVQ*)syWN7HUYn4xrOtypRb z+R^KpR$-Y-HM_f?T`wC5vJG86hcqm@qP?ILyDrFT8`l~E%Z8Qqjx3_S={jRVG4 zLmE$K2fm)v9&j7eL@lpIaHTMQ*zwmKT6MtBRZIyF-(uNtb$B>^DF4I;`=yi$Y#l-7 z0uhN9Bz00(y0)#4SRO64_Ea(G3=2+t(Z>~zdC`*dgUgP|r{l-0 z1>ICBwA7@$hxPcN?zHTfCEL#-SglENGb)7P6N2Cm{cu-Ss<_Mr0-xkRosvjrjj-|N zL7K$<#9C1F+T#lH=JY`~gEDkIo<8zIKS*EvfGZ)C{FSr6QfvEE%J;Za4lIBb}_7o{&xH*O9fEiU-Ud|nSwns z=nthPdvn(xoc3=4TThz=Hqbf?zIV!r{LtNQ)!B{HNF6OYjxM?^p_tv3#t{h#rr*lC zt9McwoCsRf9q?}8W~{#O)+>lsFx+Q~vLTmJ{z&giAvhL~z3X7%mTHqSo;pVR|Rt9nCIvTN5`*{vmlP@9f5OrG#Y@(d+HUoz=9w)iwrGn+zp!4b?oY|4Zn3SCSEM+EX8mb{ zKK}k8fn*M%pDqXfpfJLTX!yxp){}P3uIq53`vd{s#P=m~_BFM#HRpV_DS{&4t;Q3lH&i3dGIA++M451=5j zE!HeXCF;3khK~5vBQ^H8)d>ki$rF3*A?&Bq9M(ENC92;LAxqAY+qIL@V|1E#8@mc6 z$rF?BZjUasS8v7Frb3#JTee57`SCb&y@}(5H1{1Iv`-roGB7pVzQyY%^y*-tdB2B* z=2uzo-ie2I4kaXcqm~n$^=EFo|7sJ(O6xS3_Kj(evhFYksrTMURhN}PC{7UsoyBTj zqiO$j60V9U;0CZcv36;O=}U7~RJs5t5QW}N?kM<}C+WA|aFHywsK7$~Ss0de)bHs1 zYqhxzNcq(||0-xA(b1~m$ZJz@{@k-cE+68Qof+dc(Ve1%xT4$TBOlA$^;kM8Q#Qaw zrIJ$M(+D*3`-;>Ag+6CZ?l>X7MO3@8aeIMuaJA34{7$0HEK^RycJy8sHU49!*?bnWynM05 zHx+E&nEfOr6=zGgB(d^?84;BG)^k~nP47-%j7<97J*C87Njb}cYl+99!&sDW+ZF}a zJ3a1dE1}!ZD%2k;XUGgQN#6O1xV$@;M294Svn9yLQgT3d@4!Za3mQf6BQRmb9bpzn z6vk3#pKBD8EEzVU`B^c?>9^b62!?1+ktX`l=+y>&qifAvX8!sCfr~0M(yg0X;fv4J z`$hoKXpH#Al7`S(kIC%5VRPTt^3yH`KVM+GkLY&s3)}KH`yFbFic?@F9R!zmj$*}E zczm!RRUFljT1b0wDXBN9gYYT^{O_) z(1sRRcc0HwoMQwE^5fMe#VQd`7&IDHTmPy8A>C>sEuFwQlD~Mna*HBPSVB>H+oCG` z%=)SWK0=Il9?w6)KRc?FVL^I@>Rn$viJfT0V)X#y00+C3Ji3kXJ`?0h`y;Mb19+1j zpUvLqer3*+&m5wO#sH)=@-c*fj<-2)9UNtFKCyd`+RKeiy+&6YB|LM`~q;VI0X3ax4=3 zz#QK`e02@L^{ zEY*4Sa6)L^`9{u(aoW0Ov=cgKDT%if1zh7GIFi|pOvw%s9Q!P);&E)13>be(K zZ?wS7?_6KG_ghNWcK-4=G4^87^DJNTv-*u-50XL2XEu2WfSRrpuShqA5W|PgRmR)k z`scofReTJp07&~Q(~SMM1Lgc=i>m>Wma&3(dlzrv5iadt53}3xlxv@aLYAklw_$Z5 zHI7M{y&igCt1~NCnn&o7;r?fNpa~dUFqAt2j3#vSk4X#Z%PP$L_76>VWBf|C|Jzz| zfyC_B3uE$^08Ud0=@A_`mkH5aqxX?OIFxxH;S}}IqO0Dd+I|JojIl5!3e{3#fa15oRDC3NKRD81ylyF zKCPpArltCXe5$=!SCE3tdSV=o$~WxDQghXI$r41S=1sj5Qv`vWTwIs95;5dU(GPOx zbE^G^7X{&WQa#rvnsm;ufcL}0z@FgFLtY;0*2H}WQG7u(XsV9Xqt_{r z?N6i?`upZ&Q19Tj>b~X0MR+>%RsYuU=uu%MDMTo&_ktg*tnFTH~siq39 zlVrXn?DDZHY7cLSE3Z$wg0)FG+UaWU*Pk@gN#|@mG5LQ$d3rT?t;Bp&BdH4Hh&8TU90>_CC z&0@o@eA9lig&ugY%N{F9(@RFjQ63Va`sfJqjwZinA2icW@MP`T`?Y?}+(0Zc((Ji{ zivrAEN@!2ShZC&Skop`RZKmzN=89Sa4D>e4K)8O;C1`bZ+Cz(exFeBcD!JSY1%abl zc-Z+365lX)Zs6O35M~7Xv`K#uwnMRze(a}WZz12@wU< znqMy7i$7`oI8_7JofqqQG}h`49Q?pF4s+hUA>31o@)VMbME?&a~^KQ_S}yr zokdlZ5n#I0f?fCKY|{lTd1xzwp68wZjQyA+5IvhD?_R>I20(cwOv+zl^xm^V(4oJC z3S!z|9%wim)$N^k`7-`weMCKwpdMn&3e9_Ji&JGY7h*WKE>D29LWUT1TFG>YlWlz< zoyJl8(=#1RQMr}Ev^Q;S)4zWeJIQ3BbSPK&UME;~c;J_v*wF`>20Y)(F7-zuCO%XLp$j^Sq0pex-Hz_g+6|YSB4o%i!Vju(%x(^3c0q51u@s< zr5vj>Lazv~;|e@SUG80yj?v7DiU;dD1+ZVBzG2Mk$>z)(AEN)awfN86r_XUZS1@GV zHnNOA(MCdDDdnzW1-N~(syy3t6^FzUFj2?vBt4Q8J*tMurqD@#U~boTZ&o6fRFOFa zE=kbVnvFcXBY)xnEdY5cT7cFMd1N9UdN%VMy`N}B*$tS&=+%|fQXKC`BWL>5Psz`7 z6t(9k2;Mi-fiWFYSvD6M9eBIiMQca#uv;H$pV=qxfeZRVkHwA>E&KgB1Z2C!kK)FP z=pH|)^!D~zys8SiC6SfUSQ-Xm9l~F{pEDCsD;h4ZjF1zQ9lejUDCHy)NIo!F`c(Cr zs%y4Rn(U*y_ubl1AO$okb&(Q(%;u{Is3EE$cy-@jGh4oFDkW+w?c!9?s#1)Pmj8U^ zBjmY+fm0r*b)Tmvx|@Qrao5wBL`lA9`H+Ve&xie@^2eL9Z_@rdYoxx1)1EKPO}Z*E zF|0%=@v9+@`%Tq@J4Seo;m)I@Ro;FBf@VN#i~M>MwF$WM6o@ z3P{U*v9ggLm6svKj8#10Z^?n+Cs7EOs5% zml}TUOmzF8=O&L9H(CLR)t|!w(4dh*A4b`>j{@%TRTe?Hri90DT5P59P9WEMx}Mso zEH{)p()qnKj+^qEwfT?_F&`>BMDk?=qiTCl1O;K&yj}if6$H@!_Mis(;s~2+>ZJNI zI1a>wNG0`oX(^f?H29`DJ3%1ikaWUUTXy9`+E6djVY-z2=>FaInVU|}IOv^feG z`>QAKD*P2peO0{=$kY&%y`%)h`ZQFy_Texx8YXQoHPngUq$j+J%l`-weV!;WF74<+ zjl=%!Go9iWsn;eR&PAM}>BHzt!?)D-PjsUv((!oP=F<9d`TmEx{-g)tg2;494AmJT zycSKXE1{Xq{0`o>qxHup^Z|)jm}#%owU#DGamRNJ^!O>XC8;Y!Q-Z=8B%yE@StI6rQESE{kFSWtH7EBLUIBKOT z`2UA1=_TEBuqEnR%pke{IZF@j44U8tR=M~?Bjq!r9@FCO_RK{FCY-XlZ_}h|aZ1oq z60uQ25~X@(#zv9p76_8L&&eGVT!1d~q0i{4REjM-v^HBaY`uUILpI_FeQ+GJ>0z|A z9-ERJl0{$BY)Z;=6#I9km8_DK=9_=#=0eZTs9yY}f?cJxd6laA5*7R^<@N|a;@Dxi zmpiJQ!u*U0wu7m>U(t8%(iaQL!jS+s;2}33lv}b2w|fW&Ck4iypziKsB4<0c=Qbj= zQOirY_rVGZ#RAAbOw8g71Y0dndgWHI4fEj*ZdeD=Kx$foTv7v}=KAz5Uv;gG;@Ljs zU~WV}tAkJzav?G_QHWywXLtsjgn7DO^DR&>mG{Qx$M$dR#{I|*=ctZ)VcN_#pcz$?qXm*)a@%{q z#p&l66Z^fJ5);7Je63v)BmVyoPovN&^XFFqfo?~81AQu}So9vKo&CW3fMg_BRCUQv zR0N2nFP?etdaBd$_>%sayL`xUzg$u3)BB6f<2{cq0b38^>I-48yrJf4fEwM{@CS#f z{PjUng&~EzeU{@&%UixQxo6zUY-C2>MSYIgrV_#<19ZutpI=az^0gtBnW~X8wKnsV zRqWn<8zp&QsZHekOcG|!`p^^FYRsv&G}?hLi_+o|HYxQLc?0Hq z*T#vZn!`RE4j#J!N05mt!PkYX)oP;9J;h@$f-^9HjdHW}$J`(fxlQ)wT+<60A( zQt@6p5gC}5im(}_EXXki-pbXUmw2b?MVzp4n)1ia$QT_sobK03lDm5L1$2bG?D*v2DON{Ya9iJx}X%2D(c@@W67S5io z-V__vabjgk<9I17t1tl`rWbP3Fb36}No&Sjn5Q$0PL@KXC!CxnNhaX$B%!&Qh^y;4 z{*cr2d24N(t=?4C*y1-vOvNna(TdK5Nb(my3!UioLB3ld+oyi+c4f0isoGHHyn!xx z@CC_d0zmp@k={ZeacyaZSx?8|Y{%!OWGT?cUHbZ*wJ{BMYS*#YK9S4*Xn*H+kQc(ZNK#j|6!aCrM#l%Zcq5 zPKvT9*LnTOu-nPJ?#)z)Kfy0xrnu8h(yY3qcdX(@YiLO3q?j~3V&n9JYbX-c_=L6? zBTHIblq#3d&mgdLd^T{WVlxL4m0$g^JKRmduXFBEOHQPG;_eMbC<}k+Xve`K#s3u( zVIHfW;m<{z)5pp1R;e3sPc>d@JHj}9cRjUjSbm;ZRO}0p{|Y2KViSQ@yy*>Yv~Q2T zGRxkq+-`I-Fse4x)h(-__ic<~z$H>4HoM!LA zRqy4&RHw@0euvs(Bry{$>0M(qWjkL!{FnZO+}5iY1b9^obk0c?Q|zpL#$3~6Niokg z5Z*A&yAZze#oNJMLC8n%NaJER_qHx2wc9&WdUa#JXI_f?d-rAe4IgdMhwT8T{L{@F zi-P%N$f?zEjMvl6#7pcQtd3zEXnx&aiPiG z;zl3O4xjoUCWU2+qVTd#tKGFzLS(Db@*{kp6lPi?ur+V$+&+0C2ph&&RXr_AEXzj} z9m~Mf}h)6;1%YkWM6Q>31ba~(dv*aUkQe-Rrndca7y1)7=F{EGy4oIy`pd8 z6z*?B_yav*uU>t76wi_|EapAu?S7J5$4xOrjGh^DxAv>YoWl2)sqCoi&J@W-qYjPi z8!j3TJ^vt=+3R-gcz37pA02))Rb6N`3U@Z2_hq@J-;3%dEQW7zLqg1&A#2;xLa#0V zu>X1i3vlXm_YL`}kjgQAuJ{UjWI3#}5kVYsyLDmO8vFlXe%EijB1;&IDeQz)CO22~ z?^#6*)PEn#FCpA~XFd&@V)8yV39410-Zxwk>b_XYo_e@mB5DZUKAsK{_a!z3DdELi z59#6@MZDt3WpMCbN8u4CbL-?o_xF!~)Rc?5yZbQ96*k4KRIT^klcO%>qwXgh`gS55 zD^)Rz&ibEBfPl~_h$Y( z-It^3gczvH6!M@N?<$M-3B=fOJ*QRAL37Wq>UZ)w3yeB9Dl2%QGx-n%2xdpwp9B${!} zJY?oIi$I^0@cUGc@VhnWUBNxUi#*zeE?Loc7Zt}{{9jHsu0x@x_goiS3cl7*lL98f zFM{M9N}_l=A0$^R_iYB8v+fU!PHwnv&I;=$Q_}sdt7Ywuz0!qyqfe(-T>Vkz5?F&C zaH>7qMDatfwf`5_mV{35?h0=)P}irA^5w%4NG)=$=Ee+lBB6OwDTE&gs)je_|K$Q` zu3kTUCv(4)WA?=o+!we5_!0V}6hd#lv;nW}?QdNR!$vSsiH>;2Tr#8acmN71QdMok zJ#t1rD79@%9femw%>t%*4$s=3-QHQ&=Ow2XogMbf9XmlRup*g2CYUm9r2l2m zVRvdMr=in-w<}5pEV8Z%SGe1tw&-4655H<%8-C96&xe^m-DUSJzrJswtsh0*b!z`w znG5NWR~Xf~JLHxOzoiG6gV+4~zwQht(jsRNx6J4=CD%ql2c?H(?|P(`UQpRuIO%ox zZNd7|J>YV9{%B-KAQoItioQiZn)F@h?fqWB6bN4F?3rRdp+k7(BkXdhqo`MfF(!Mx zoi%G_|4oee-#-*zMM#4azmsd65)R!8KS%TW-7;`5jX|g-?V(kBc^w_?0Vv6(}I`YL#5(aLa~0YDRzetD?|5JGBlDRg|p?M7b?UL%}aMy{_m2lS_c5$z266X6`HMwYS&wGrds=z zJhE&BUJ_Sh!er&|y>Jncm-*tz)#s&>a^MEy&{`&cNZPWy~*?tlK&{R$|Ck8AN}58&=V%m>VM5fBu_MU^Vt5~GK?u8np5 zb%M|UDkRMssfS5X+<^Vr^sL-JDUSYRR;K^FWtT1O*yfH%Qvdhva$@GZxqyqd{>Dav z_j5bAV0X*Qw%;jq&v8pIs;T2RVjm+3lPIz*tQC}<%Ip{{GbqXCBAzCUhOFR!Kj zmJr^Iq}J#?Y(8Emgs$C+oUPr-{VKJ@fb=<+M^gRs1s!Dnv4SXEl7d^SO%I$%keja-p~^uCukbC#R2ku3MhY%QzC#eV#eT_B)8L@pkklSvrXL{+-!XCgvG7 zt|W{k^>w6b2TA)V{#O*@@Lfp9_xe?sBqBJNdnOe2d6^g{`d9pzR}PJ6(7f zcADcpO-cgMq7Hb7<$Skn%`VT~^tCrnp*FKajJ)9f_U`xX%x3Q0i-Tlv@1g5xz}%_C za43O@#7f)|f;kjXw~}I1eTLT7Tqg4kZn_^t-;UXpaL`d-}l!k{(t z^S+l8q1ER(1W(*Ij41I^q(@_7!}+*7(|V3x3ZDg_j>3UxVy=q?w{-a``paezfY=qG zFGJEJV6>;{x_W%wld3T`7f-rJL7cy=UqX@fG^3wJz5$8eCkGo_NxJ14CeV)-Y2{aJ zAeO1?gBo3r(2~VWcXu$M<70oFi=k@U)+Ys*@WWJRrYypx&}LTO&fC!f8T&ORiqk`{ zDv6cn;FhhABJW#nrEhMhZ_MYqJ!#?2ySFJThas{OOy7NB>+;*mtZj{_#26t+W{*3O zBSQsDL4UpybzBTG@m&mqO=4om?%t?|;oK887;4ZuX?sGj}pwAxV>Ore%fx z*=&&;k?`DJh%03N#r#Z>Se@u(C;h01cX-xlwxS2W-sWf0h>EED8_T}%V`^Q)$Grc1 zw;8Na|LZ?!GOCpjfeDjqf*95EqmDMk^5x6xOq@bs(UiGvJIeF>w=3o+B9+hj2m7xQ ztPE9Kyo>YH{1EFQWRG@W!Zq0M+cciOlatND^M5uprH;H>V`-5wVXnLsyjyxSQgMbB z(iLoK)AINvH*)R;^m-XFl9k_q&9<%GqJ(J+AeCOfIk6rS)mt=ndYUW8-KugE|+S9J0{@Qka+SnX^dQ)b5@F+AC}-6GuGR{qgoR3|zw==S|ZOaGAd-P~GO zq)@N)=(a)#uFhmOf2#;LuR0y8&0|^uHx087WBP(bWb65BmY~?s{g#=jAU_wg7b#h) zk)8DL7cCrXIuE_1Xw6QJw-AGtn$CG)5VY&Ff`FbU1~Z< zx_j@^@g#3moae4(jigQWn=?6M^_%wx7ot^!BFw>iFa=y3TsjU)j(Z<+`AeJjgs@@{W#fJ)3oR{oOc3P#<-u5A5E(hee#Y2T1Sk~ z4-<|ePV29w$UlrobIgM1vmo>u434FRP5AfQz7)h7%Ka`?lM`rPBmQ`um4h#}-i6P= zjfHJ!AD_`WavNaz5-M3o{3NR0N@i%rm!s#(ug~)Sat$41zgHR~t5=w_KhJ>Iz6R3I^TYCa<+3S_+x8CkGtk}C-X4f zN}W+sltlhg^E7P!AIq#YY<_zBIW=;H205;?-bo^9{BtzxKj#$te^)%dFE2<|y1M=i z(KDE5klwlsi`&s4LSZ0SM+MgR;vgCw$q$|pMT5Oh`E6()`4vW(%Ru3VGN?@e!wMJj0tF6?#?9Z(4E2PW4E z!Kg1!rM6D@pp-LVPYnhv@>K$I0V!JX>cxqW={J^8HRSAQT|ek!_6&4+eX7@dC7IH=Buo@MWe&nDsBH{c z^0JOdWGT7P1BGd$PU=Ypg*jpn%AAs%B!6xa5&>snS4OAD$Ctd_HO=C3g6WVDi#Epr zSZvtjTI!TUH|gzU(YY_WVYDgED;@gL^=rK(>_Rmv#2f}+kZNs9@s5n>?e!*sEPh5u zlmLz+>jMxR2f2#tv384r+~BwJX`Isf&-LZ?e_>32PG{KD`BaPug*z7JP0PExCq%Za zMtd5cYox}#lILIB3>XUeBaf#nHWG#Wep{qWOXKX%Vz56$CrwGr5!3!0NiV1AkMPi& zqhp7l!@uy{UmqdgRQs|>7M8*((#n#}yU8p^&Q$7p;r zMBx98j)(lvmhm$K*aI=*Q!sX5JF0;dC+=is!a(O-)SL_`j+CIGmnT1!UWznh^l*~L zO|nh(q?>Iktsi!auEbIinW8Q{#GH^3p@N4^pSpUvFqjunvRBorCyhVN`rK;Gt3|7b z3q8?W->URRUH_~-8q{IlyuB26l4&2tUqM4EG!JydQxybCY~hipr{haNGc&B{aLz&t z+|C%e15>H-NQ}oaRnu}AC-MEQDDWK3Lb|{sK|e{NN62?WZRKq z?JE#y@g60ovH2}F9@X8Z+jmfb6er`IT>Gq=1cMF$Rvaz=T(%3pOXXOzH#yC16H4G1 zt%8Ldo{Ib#&Aq&Xn&AQ5sY1p>k@COpk9#r0FKE%ja7#0S<*FM{2o#;}f(FoW(z2(WA!xsyE^uUTz4`}-zFz8$##`tcUb*ZipI69CJZ z|07${!Xm+lzVIpnpZ?>*nbxU>E&T|y%G$8!$ra=07gJtVJ3b1vt2oB&$0?DVcv?|$ z;xuv6>`AeH$CqB;zr>qC+uksYcz#^qVmk3Z!st2;IHy2fFvLz&Jb%qh9UU)aYyqO) z>v(29@0e|0yYYz`_I_m)@a?2PYJK%muA@d}-q&$STy7g6gy7_1sogrnW4}JF@YVjd z4G@{YZKdDfluS-tlYG!+2lGa?!}dZm*BrYrE=IBmALN!zCY)4Mpz}^>!!Vx@-Yk6+ z)Wfpdy%TyOH4cml$=h;v8J~<_eZsw^iCAelaOn)>#;yjdESZ5o*XBJFn&O(8aCCD% zK6S|I?k&7ym6A-uo6Q^$)f#0aQpBtfg+?3Duw&pE+^|nljrKnW68B&DcS-aY;20#2 zAZ{l)P&o?M7$eIEv3s^00VMwF;r5+ zcCa2WCP1wVZ^8^p5Fh18G~p8!?Tv3koH>py`VGYROa~3bs;bv36_p=g9N}nOeN>OI zqZI8BNuc3iF%^e+?lfvg4Hzv1Bv_StzTqPIEjmJA3mVMEY^iXFiqj*>R*jXrF z_My8b30_Ke!odvUxggly1iFdGjf-kJ`l%K7^b&*yoiOq9x;G@WG&gDz} z2=xtZBmSEWjAWU$IBOz!R0pw#DmMUw=<_IqC*(MG^y}_L2ZrSFkJ!k$H=w4^ys>x8 zqe2HaO_bIvzD$0dE34J2HG&I<$H&K`nsb-AAFJWga@$du2zIEd&r*w1(%Hu`sM)ln zJW_mB40YQ@HI#H(h8(+1hy!b+Z3$k)Uqtv3+hjIZF?_V-nvY%G)|IM!$Oj$mtnSr zms7x`%D;Yg)3S|y`4omO?A++0C-_WThT;pE|L4jspe+9o`1iKf#@&<`t=E?t<`IVo zYf>_Q&=t_5vC;R!8%Hwt5}8vFl2~xJ$=?;SP=sJgg6IaVdg`EKg6?}cP&BDrdf%hC z9+mk6;j>3^MWlAZa2}7z{wtBVd#qQ(0Ytqo-XFZe#q=fqsMcYql3f2rmpqbG!Sj+U zAaT%hU~wV_lf8T}AffA!E1h+b^-aW~Yru6LH*XJ56Ef*p$_(vO z|M2jHsa_-n{MqJ=Q}n1qW%r&Zd;C27++xn3x9fr~r|997pBteHR{z%4>kik}r3d3b z_-C>@=s$$qXmZMMgHIWZ`DZRD@P7w+JC*){ZDiC2Lj)_~J#A!e0! za^!C6dMAxASCdwdy1+k8Ypme^;WzD zHhNL#hRAb=EJ5tt<+${y1HGWKLvCQ< z5lK#Z!|bU-3|>K+w7&FMMTQ2dVl?+s$|bqNO&5f{Z!}z!OuuSMx4DT-up(Z;;KVC& z-SKnur*&fJ@RRXXX=6(uX!MXD7pMa{JrG>=?3dIP6!P?r|cqqC`QgAGGdoz_3?ZVyMRa9kMWkB!d zee+sq71_fR;(OZK`i6&xH;kn43sSR~Phn`Hy>Lb%c5WYcL+%A}`gX1`cSDEklBhg} zQ|~+BrUe&!c4hgsGYO4yc6FVb^eJ_;>O!bKC>Gr(YE5Tv4h%GMABU9wQc9ydX;PS+ znsQj`Qk|@whl_H9)viklZI~@4=ATT+RcD|rZ~Og-?z}IB?Fm{L&n%vYH2`n=874v@ zE*Qa!?#Ng_Me9M(|DzL8i1A;z)}|7Gu?d|?|7P~v(VKQ4-EpWb)H8BxXx|+$>J&^nL>tj_>H~Ay21=X0ljRPF^0&f^ zUv-5WW~WE`=-KBP^h3c#7S?n@q7(K(=CEin3fU&VY3Z~UsuQjJTh5-Q1DehQsYUaT zu$r}}6k%G%BpAib@3NDf_5yU31p30bBU5Ziudv09IY6M~3KL*t$)WBXzy6#gJO*!b z{>M^Su4+`#^ZAzFu0qjc^__ig{^YSK9}=Dm0vV?unEDiwNE3BuecmS1*p}`gH~$pw z)OkrcWAyfAd|CF3r(BgdhX`Fkgvh&UExNPG5f39-Nm(o!V#cfE+7L472dYWlQ$ZB? z@kFKdda)=pam}JPEP1}x5|R9VX-{AQX7-TgkDW+zD_T+GsBic&`WBa~s++Ong{I=G z60uh_L(~J%4S7!*y7XV@+@wK-NdIizq*J0>GONWZDl`;M1u&SCUJM1?y6Q}i(Bf1|!X2Ez7t#ifxuQO~^(I=R!CdVCiQmkGS}cmzLQ z$TCe*VKocCZZt&BIb<2l;Xo=>r0N!oxUE?OzFj`?i~vOXJ^$n0_QD+CdiITF{Xx+b zZYMX9U5p27M=+hO?Ytr};)CoT73$98qLV2ZdvD54h5@5i^=UOMrF~|P@xu{XyCj#e zhH%3w`n5%ZZr7Jjmr62Sp>g`>EX09UuGC=$d=zjMyx^~b$!=gj|Adu8tj+`A;>yEo zH?Z}N-p-SWScpB1tQJ=e59Nw-noX|g&NDcKG^xju)B7I3yr=T6Id9HZq- zLh?@w-)R5xPGnn5)$iBA!Zelyrg*MCNOxd9Y95@Qde=>sz=k%%f$v#DKgC%pR!iH_ zw+PaD!B_*>CU3QaJQqEB?oAFp;1~Wo7H>{Qv`)u-H3xenR7sH+dSweOxFthgn?kdC zaRggt)&I$AD&hR=8nDU4z9f%6N7Np%+@1R$Azy};B0N2%pi_4n-stADhgD*9IN*%t zJkmnZma1Tk)j^pGyaKF*3`sI|xH!dp=gPy5i^mJZ#2m4ACpDPEW2#IcVbq1i9$2w| zp4Ju$^WkotFPG-wxmFv0tciX5r8tp>Z#6K zNcgij#jR^%yAxe-FYNP5@-Zcgqx{!GeTEL^v10B?^E%Zxwyi2ul76(-%PLuq@f5Ac z`FzY`v@qrHfvOR8$F?no!reF%{D>&JuL22F%UUaBkbWfJ4|1|6d?T!6N!SMb*a6A4 zy>AAQt@VklexH&y(*TrqA70o+QpKdST@tPUYF-6Mp-0#VTt9yyIb!20k)Esi&YST4 z!`X`trQ!BRgg}%as2fcoLFAY+Z>a`atmiHL`NMqHF4@OF0PoPI5t7yVln6i*_+rD# z+2y#;ywh1}@!G^F5ZQGQE+z2APhp~6u~QVLV8=AwRmf~uY2aA3-^tb1<|Y%MeS)m@ z_c|8l0x`LIFPfv{@6I;~uapgq!%uI9*81ZJPdCQN~)tXW0 zlDYa0&<(bbX!H-EVySrcacFq7Olj1m;8A_+p+A)HjPckc+Y|EuFL~l2YJ<}+zEm3s z&oJ}2U_-m#evrF5EV+e$oEG8EO|D1l3D+@QcjU#SSgTzTO@bM2ZXH zkKuT*ZkB4^P`qdpuQZ%OK0@`8XmhwyX6uJ_w*yV*aCLPR&U+EeAUC_KaA1{GJb{ zc}0yDP7$O?8`IxoEj%b8xYP3xO8|ByMqHRW$z^!FBxvgC>dM6jG|^;#Rd-JFuZx#t z4cO5&!OX!4Tj{$DMXHt$*{l6?=A-_-9Fj4!0o-31BB8?s1tB3(Yd1)I@ya)0)d5(gnNi!@_>Er)U7(?swfN=~Qq zX=i7j_}d2uhqAF-?{MXP1$asdlag)X5>(qGXT+~=IC}1PaN1tl4)t~5vpc~fJ$J0j zoJ_sDV?Y^CXG zi;|jzU({s7pR9L^nn$cmeiwb}U>!-{Qa}buHW8XL+Np2d;_=`r#I@Jc=)Q^ZS8^;) z0!pMtDsllvby|e8+ZRhJpfI1chcdM zP486IqAdD;;Es;npfikF_^fTi;JR|8h<&X$D@&=jU;=qaQf>syM#&;?3g5p&!9EP_ z?JMl2#)IxIo4CBg?_@=@wll|q_B6&GC3#gc1zF19cSW;uA6%i*rm zC#&-m1@a_dUx{#BC`W;DfPM2c0X_u#CVf|}MRJ6H{lF3Hzm=}}7+h%X^QC0uDwrFY zp%4_w?I5;iV!N_@@EkrBc1-ZMJiqZ%NYFaD2e_*Ys`DG|T5L|~IT3?Hij5GRbbH;ndqrr=3`X3a$|*VP+xkc^~TAHEgJx)^;gr=q9C5T`DoB#wu zXPc6mr}=!OV-91<-RP!CnY7lF%FVN7zCFO3>r(B|QMD!jK$Pg%;Ov%j0ZM;R+M(PN?K+VqqfUpxz(XkioNEM$U;+w1(sx4^Q%z^o|8d zD1bbsQEtm|2}__k-@Ln&yAP^Bim<&7ZSQPTqGPeVsbKZ9Z27FO?c?*;pn(VQhN*rGh_v19m{7p$4I^H^; zWe(X&J_D0^;yt5Km+|7!`dCmugA` zXHP9HUaRwrRiXl4D}XxD z9l1er$yq~04fRDNm=%JsDN3amwG*xp@r~m zdLMPauZd={q5c{Rv_{@zb^K-Gf2iF3)E*>gBF?$V=2ZqYI%jb-bHk0?i6(ALZ#RZS zU`_jB_gr02ScWfcGzyubIdPgHHx1Du1Q17~&tFjxXPa$amO=mWsBk)*CiBDtKk&ha zeY9TclDQ3Ci*UvBS2FrsWUV0AIyV7>7s(kJVrb2iqn(-0KAQlZTAEc#yvG} zUb7i@J#d_}H!+uT%fD?HP0m(G+*~l{`}Z&_zYVIsYp;0oYk~kihm(`>s%oCQ%#d5y z9=LF6<5@+NAQx-QSQUx;NM%zhd0}56sgqvV6btM*kYqBV^@qe}- zAq-mN_U(QK8r8?u^GG(l} z(KkD#xq_{_e|lp^2gRZ+$U=K0Lf|L?ar;BP9%8eYjqvXN9x4dFxA+o8`DWQR$6Zs>F-4NlkEpBD99 zJx#p7`zdtveXR+30Sc(j@Vy`poj}k9-~EPKch*N+?H8f&keI9I9yREww;Pzy!xT1ApI7%2=PwAFNy3yB&Tiy3XgLs4k>tjg5`~nla77t*mo_xv`Ds zCLe~eVoeOb%~Ri1kXXBEgJ09ARLiC7v?RP1uGMRP|H?eDfbDxwvYM_x`7dLD=30>R z3kC|arAsY_f%J=kcTkCzsK#bTKX54O;fa_PiB7E0y01N>W z0^s{G%1nR|7qex2UosEn0#kGqWbpEl`I-;QvXAT{Kg!Ja*5c^0Rfu9bv_z9Jz8#w! zvC87Jf2rtX1;&n7Vi{QYs6s}LemoZ}A4k+H8e@qQ0RH|aCs*Lld_O$t_jWC$1>D&h zv~x-QEV}9T>ZuGa5}rgIaM3WZo*o(9Mbm2!!yqKICH~f+Y)p@bx!jq@_A-=_QNW|F z0D7dmfi$ua2fiI>p;1)r;8LG`2afK?7+kNT#t(_?<1RyeTTJs0zP&Qf4I)mr?V^~! zL~w$C~meRXFuJX}j#Uwo9)D>S;^&sA_s#|*9K|`JStIiQXY7VAyey_-l@52$s1M;U=YoI&nz>P8T z6UQsUEIQijgI*RCKwEqFttGXxZ@)%?4h{X8e3yP84P?3o3K9W6$sQtwJa4JP!+Q0W zr?~K9_uq{vdMhM~X=ll$t>q~)DVblqV2g}cV)5)`p}>bENZxrm?avb4Z?pHih^u^f z{ZWgnztDyNwe_Xz-sm~%=6)N2-(gwZNPALw8|oS1pLXO;MbLDSy72nR5HN1qtYf?D zaIKh!?6|S7j`Y0XPHum7P4{+}uxtTKZ$vOE{_m4mc-1xYduD{>KR@FO@RNMgl&yj@ zH;xC{?(Q1pILCL%IupH8&pL{m0~Smr3$5H$>7PLLdM)u=dE&LMww6V*lKXtkKrE}PNSSDpgZD{)(1~cvm(; z*;YEWK0+z#>f)Kq{`V0)y8*WF_5_WR0sp)C7;k5l`6GMpT}XScTqJl%%xFd=QI_|& z=vMd(I>@4PASp&2ae}yz29J{`d;~+rRO)(x@pPA*gye1WT(v61^E(xR$U{rtilhq_ zquaNZ3d>@4m;K{9?37ZxBlr>pE}t*|U}2Ish{^})mPQMqhknj+vy3BhZphK$yjSU7`BmlxTz z4~y67Hp1n_bwI64PARa3<8Z8$2Gh{Hd4<=df{b~YnKce}&mk-e9nqrCG!sVC>KLR2 z6%}#!p0MPp)0=WQCrEbgB?c@9$(3sfy&AmEM~Oj9m~VismRwwzz{D(gKkxPVMK~-t z-iHRv9JNA0Lj8y3+G}V!zCV?N1gG|l`X;mHn})raH!d1Lwl9InzsnXyyzHK_=S{1q zy?M=ZGknPBoN=kc<(G?CiRfnxZTjr&aM4PqXG?A2e{L{DjX_w}PV@~qH{JgNONM=w zBmee5Uj0l2f|rd_dgVZQlfa+rG4o{ zDIcC(4FO|YR!#gosT1||>hw8I=31WTWGPp5dP)y?N?Cqy2g8@zso>+L9$V8DNmchP z+F~_mYOum*uEm*W-=@}{JOGm>O5-a))LGfAQ+yi?3i0W^`DnsOYI#4~Y!4lnO5@~U-#)p)K_p9e5KMZwq<8sv9O3AFUy}-_A~CtKU}7*A2=ky z6JT=tnPxCwQ8Imyr{4Rl<2 zAT{-&-1RC~7*2hI*5X{~?OO@o$yA(Hb5;J$_}3PEosSUFW2AO>CXVZJ3%Umpjx zwp^_9UX*T?_MvaEgdLaba(Orrv?>8~LF$cuOgf2avg2bk3p3vi4%cZP-Lri7apk}* zb~fz6vtc@Go{jf+*%!}4=lw8rr>&u#6+RTv1g6XfO0iPWO@_&mEMr2M-!01&1T}x4 zzFDq3c%Ohz?uU{4-KzF!Hv)rIVK&r%Q}F`8JK^7Nlly}o-Fv^cM+@YDJPuV5($OUM z8*CLbvv%?sJo>cKQ00SKw-L!id5irq!C-9U5pJqA;?-+f?w6LTwG-wwU+d`}41-jg zpgOj7m0Enq1X{Drmz{igr6`S1zo4yRTc?S1b(DS$?I(Wwj6P@W8~@z2uwAzg3J;<~ zlfZgL=x3zgQ{T?s!aZp%3Jsp6=E=`Vs^wIF#(C%$gb+1ZnT{dtQIBtPjf~kjMaZLk zlul(#-(@2YkQF6_l+<(Sh6OtT9iI_o1n^UwMR|Bf|0W4LU*8CZM(g`Tm#`nIur>@$Fyg=!AKYc{wLcLlK7 zs{C$o2K7+nSx);U?(2tTk4XOB+U!d-Fa+B_AJ^I6_B6k<-OH!J!PlJv_0mP z3VCUP19|zN(2hX=kRd~k=6Xa^v0`X$wMuPgh5TaQNE@x4LpE(ZC+JHKRBx0?=X*M- zb*+Qf_lq7i+2uourqUl!B(5M+0&k zki(}he4FE+q^TSc!O6nN9Wl|zUy6t3VhgvWg}#P7^y4`dmBL?982;1dRrr*Ihwq&> z_uE`fd4JjHJ%tco2ceJ8a&*7-vwxxpX^zRRXE5HRi)Xa{eCDER$LapMx)XhU0Pes} z0zT@~5Zj8zO~-Mn^L?6uYZeIPUF4f%Cn4IEXBJ9LIIW;Xu1$mTt`{lOh1?=D|k+=a$~6kx!s*Pjx}oUGqim$tsnbq~9fwD-&6Fb#WGv!Y>YwFIqkP!Tlq z#E$RishJT&?w1=6sNgiFFY?|(+u|cSdm}#QajwraN$GsY-=sA@O`Nq0QB^-)jepP8 zURPe_skk0w5yY<+nOn)N7NcyXrB8Q1iGU*ZtEA+oHH>Y<`XO_Y5u*5YFimiLVey66 z)D+!Tdm%LwS4Gq&j5UZQ=t|lZqvgZL6{;F_!2hgTH)mNL$AJCE3FA-EKFj!=Y7#b@ z4cYfH(<%T_T73H3beRp;<2CBiDG-q&eA+cz=k zs%EpXdBAAWWr$~Wr}|gZoH4PvUO-Z))@?i^!|%w~;R|$%*~<(nDLv$3-yELdYELQj z)d5CU%7c9pPP)7)mBiBW)>pa`Je)fD!WOg`?68EE+UnAtl{()9OZ)!ilfp+478ZZl z*5<}o*qqX}W=aLA4jhli;rGF<>e*yohZtnkDUaU9rPVhGilbS-n$M)@4N~vg?2W{* z|L@{0=olm+F(wWxDHD|@9kh9TJ|w1=%NksNk?E~&*8ifg#Gh?aVP&2yp>l0L&3&Fj znv3@Beq_A|bqJbu2fK3CXfHxbP5t;M8aHmg%Z?{KdiwF-NMD9?Q~mP+*4p3(bxKM^ zg0tYF-2<%e%J(s)9+ujSz)I|n>bWDDh+lp25labDXcQxp`x()1Z)5No;q z!$Vw+`y#eQon>vz#v3ZXm?vr#jV6&=TqGA)ED@p1Mm8QW8#4(FbN6Sx#jHXo)&Z{P zN|5}Vy5Ccf&x2AB{5OwpKYpYHEKgS4;inbH3nL7J>iz1MBVpDdAm)THTjHt|=sQOx zYox|)F6Zfp@hpeko<2T!u=E~LMOP~9Hq~i7yGdACi67sfm+?f424iO@oGGvp{M;X+ zs^d&4MxWnPD#T4s|CRa;$1JZHD9Uj+(lb$fo$Yl>GimV)7aC@kk;7jSt_K+E%9a+d zt23&KIT;Rcf)I2GW9y-G8y{$y5}!JYJAE@>j*alYI!47?#KB6Bhunj{2c*M^h0rX8 z#X~id(u=a414@f{a=81*gfQasax5+muVRKE73Pdz!1*AS6ikfy8O><7L5FTnv!LPF-4pYCa`BJzj-Apv}*2-NX87WLfWTEl!Q5$%X#S z+K1PH*Gl~4P-2eg?$I|Pk!OTHZUvNO%9pnfA4n6W<9)3GxJ8Nnv}NY?gSx3~wV}~Vn{KJM90^-UCX-P7P%Dai7h27f z`Gn)Du^b}_Tli0CLcjGwiJ_z{3&kz~5TN&_TP?5dGm; z93IZRpFp;l%M+S{N_6*o>aYAp3BOumwD$JqwWs#@b(i3}PB~@Kl<~tD@`FYJ|Dg#j zL2daBc>!|lg~-!_=TGk^>2s{S5rt(Q^HE)|m_4kW#>x&247U(P!M=KIcvHKfAo8KX z^JM3}66p3r5#`aJ%Fux|kIg2C=lk=nojzPTq z?rEN96XH*0hpXuj!TYx%5bq>Lg;OohR&H__%sJRA%0T7cQy%r-DX+-FP2fh9S%p~K zSW|Xf*cRMMCny&JRyknz<6IAr9W1%Ud>7|*gkXsQ9^M$r(+G_G&4lc``k!-4%ARor zyxfv7wsXBU*oVk=B;BAZML*_fUV>4R@2iNVbdpfSxn)lm6OohGGod?VHU!K#BxJ<5 zUWz@qrpv)TruCwIe#+}c=vFwt{q1H^H?c6*qYV1 z+}*}CYH?B4+2y?uBZcrB6IA7W(DlvIilzm#f`ifJDOoXT8eaia&?Ve9G8|SYJ)eEwr*4XIL#)f0Pw4X<=8R-+QalJ}a`Ey2G4zAq z!tg7?`Pd&)WKn*B4EczvY0X1V64&G`g_Omb*-}mi#N1LuaW5htDwH)Q{CPy^<5Qsw z4U@#QYLNX{cu04XN_Mj2w+(^MfyBuLIiu?#()$I3O(%i0-U})Yr=uIt8-&B$ngK9#Fo^_ zi9K0Kw?xx32l+^&D(a5ZeE-I;IZYs3xv#Z`OW(U6z>$>3>ta32&PF0QLzKlGpzS4CSvpt)gal)VN+m-;&`!3o?+42 zRH5?n-Y1U)#QReY{gx$eoJPA}w+<&Gq(!==bo)V6LjAd=eDBV4K?K~L71RGb9m}pA zTnM&W&8w?x@gH6z;h6(jnu;NsxgJ??0V<4DpQiw(X_fw|?bteSZh14urO@Drsc1Yn zRG8qt_wSYiw-<9F3!5aJMc+fmFX@zjuvDPVpnntW-#1#~zkysLlbmezE9Q*o!PjJ= zI9%=FUuY3A^j*^Pus>ENuwhP4Hh6PDclj~1zsFy8p*>|9{YAfpZL7&_W6DukvODaN zzlD?2!x=^*8$@xnxK08 zLbJHT%M?PaG!~{0fvovF{TQ!EG;g3_YRh#LR$SUw!8e$UQla-rUM(`NtW&x|o=wytPlon+ z&HITGe%jvZ34M*5&hEdxtf(&xjB6BQch6o%+Xyk%#+g?{%8boZnd9){wn2UjGjxvn z#ZDQKpZgM{s#O({Uz|+Sq3EM+q`pO~fB22WNa$#qAeHkD^GvclRW-vA?}bC$c)&UH z`NhPc5@H8u?reXD?Z73%{@GY!&EM?!PqI9OL;go$%Lfr>^YO6-FJHf=?7-R*wVCED zw_I3+wmM#H*N|MF0GH+32)S`g2{7jmw2cL)T@kg6T_%(XJq--;P zTm0~QLq`Y?8SQWKuf-z7Uz6MydhQ%-tkNfgF<4hFNjZU>a!WzCqk2C6$0nq#fkKKE z1=@6+o5$qq(cPHd)$)a*hYe@`$Z7B1VeHt+U9%BjyIzSFYrP?afYsdd%6f-&>Ti4}ibETMUbakVlrE z00oC?h|Jgz^jTG1UHGb7RF~!W8|n?;rNqrvMOj*=(Vl^AS%KHFijcmA(#lD&`TH{SGxYWta@Ik$gj#U|zK)j{QJxtnqL zVc!R>rD&?PN&gG<@HF=%g0Am>WMWj**`5EO``)On|DD@ndSBfJ0P&-oLYWXU&fAmenqXs{fT17pF z?=OP&2`p*e)$6<)AbFafV+-P^!+Am3^I$o8d=vj+LZ@vc$8Dn_-ofbBQ{Jtjx9!s? zg3z>zGZvar2pb4qWmpLNeG)Ty>f&_K^b5edYb@%`hOxj9E=P&GrY4dyO> z&QQSe`b{ZvutAtKqx^^Ak zbR5m-p@Y^@qYi1m@1S23FZN&q`0bFV za1V>VabqwE-I!Z`bK@3!b8#axFgy)Z1;y`81%|ss6$f&KFe_bDH|O#TUHcmJpI%?; zo8db!SZ&dGrc`m4kRJDus}{$f_%U(>>x0xlI?Z35fC;ulD8AAv9FBKhTHryEm<+3o zq=SPcVoKJ9Fny5XqnOQH|NHL>@WybB5K&_am3(n-Q zSTfj6NJ!7+#`Xc8jq_dcg;;N~g=yc<&$H{pizQxVkQ}V+)3eCVgy>l5Nc;eQu_9ds ze@7DP>D6y|q}pwXg$XB|%ejB&oeTucRj?u16}A{p+mF+2i|PHy>T@haVH`fyvs_Jn z>}(PCF?={n6wa5^NJq`^x_Qu7J~%y+IP$^yl_Pv-|DdPEp_L%&iXmrydR3oAEv2w<%VcDRnIcw@!zeFB=vrER#{_WApFvZA|vk> zb#ZoGFB{Q?tmSyp%>1IF;PeO+f64q0>df7^7G7>2UkZ&R?*;2#u9N2O(CNE9@=ML` z7nB;sKaYF-zj?jjFZJK}*w3Z;cxGPJs!XAZ+f61D7}XATrKj&t<}L;+8|6IU{qTaq z%}Y|4GCx&Oap?XN#RudUBo}S?pNg>tDlgfqITK-Dig)&Li4n>!_mf+RR=1l31YyZSfsnarB#s z%8!`c*|Q=aCizrtGrJ724_23Q&P|ix1HQ8~=ycu4bXiGgXUFE&2|NOpCfVsh5r7+Q zuDQ;3$?=M&w+|%8O4@hYLcF!ClAR-kopg@aVqyNbqysY5I@^DlO1_r!Pv`!dh#L(0 z)tW#JT{8ts2N7<0!#jE+Def`pQFk+i=a0|Z8B2G8GYWUGBF$!SUyO;r7OBT%@V@f^`-3RNe+E4e<|*$O^1||JlE-U-RnX@b~lp zX4qhWTb;~{K((shkQj2fbuBJ;>2s#Ih7%|&leva+Jv+RjjKu6;-lh)^^8!yrU-07N zkRb7Qy5U4K_YLbrRfb8w%Z*E{I4Uu9mGZ2|EIqh$8 zdnRw(bVj(Qe8jv}Y**+xbJj5mU*xEF zDk37zrQI=iq4d=Qw}@$1ur7g6mK39jx2FnZWllCb{tWDl-WWXo6+i2>+Tgj=Bpd5$ zr37q9%h7lz z(%Q_#LgIqp`vKI*2cy(k0CF?OvkV`XD8Oi%3qSPtp+(GY zSauW*+gQsOpuRJ&2mRhJ8{A`Gx^J4h8dhkc@NeLj?)}GrBagc%f<-7C*sE$X*3zk3Wb zRvLaMYYmX?nqc65;@cE>~`_cdk>#C4!3 z&e}>U0gFG1)Wpf;l*==@7aIDD&a~#K3wyL#k0K`AGFL~Fw7K1v$(Lngs$Eq?LC>E zVtBVi*ff*!yGwOf%U;k+#?9&;M{pPxTa=qcb}RkQqNh1VtnU$1`31APaGXJcw_TK{ zSAeG%b^MlME@@k&#Scx3CKZLT)wA173?1c4pt}rIxTVC@?UJ3*fz|lAQtqo&fQUgm zxLu;Z)RPqh;uq-nt>f<6$u+sx zQ$c}WHI`=2Y)|}2_Lp|>nv-T7`$@q61?XaCkGfhO6Fq z-@##cw3TvnAat_FjRMs9=R_c^=TBJB{Ez8TI%%w@Y zuIaa%njFFv(wqACfL2d9P~8fdXCc+y{D^DHu@Yine=~k@aI)6b zmHzbp>Wd7Vy7EWs)yP8L(9l!SF>}c=rV7+(HhP)H zoU&ggcY3b15w1ZWEFU(c-4|hYEJ@=SaXZsz&62ro?KI=U&+$(orfKoi&GX^Fk3(|J zEKN5zLjc#W@YR;G*@eq!`(Q1J^gga_8CnOBGqdOqPLMk2Kz`8GR(}|Ca`l7Y*QRQb z#&_oy578Yth<`4NkCeMTSn_U~0Oz=3VJ_0(?1FAP-IOy?P*>r5i9_@U&P19{QU@TA z3tvOqktwY?hwkdPH9#J(7aJZQm5DV!q{EI9zB*U(fK9nY-?)U0WbyZT5dD!P?PjYg$JVA_ zD(X!95i!=8a37`l5tkN=y1cl2BLhk3T-FRgANy7eTN+ASm&iPMSx3=4C=EABc4YaQ&k%yJdjr!^&N>DEjO04tP|Wqo{xXluDE3{Xt9|;hoSFi}sJJ9oPwx z^mk-=Jk*<{#w3PZmVB0Kp+DIAxL943ayzf#5m#6Et`R^{&Gw8r*)zUdfjF|yx=PWQ z`ViLL3FwzHk^DbYHz?X7@bNU@mthSzvNuu&P9xL;>5q#2+s>OwZE zl?vi1ozFNz?0$Xi!H#Y1#p-3>T&itL^OGX*!+Ofc(BzWMv!#tQBGt8lgn}Px~ zHA&zetut6H?VVlBSIwuK`Eu}>{0dGv;ouUeLo=wXPKv8eM#dfv5N!98zVRG=&K!P3 z`j2FZjStTRQJUo+Qs)?@+FeSs6FFd$zTtCmaY;%^b@|A=0Cl~l2yjtCGzPH9 zSge$K5QjgeL8u}_@blvXZ)F5!X>GuoDFwJqBXk#NRd!?Wpk{rV-Bf3Xz=pJD;%4Uv zED>6Om_RtP^-9U+57NU7Ik?PtR%4=7JXa15U4l9#|4(bP|kK{|qiO&p(V(*1MZl|H8xA9Cn_K%@=!A7i*T=I^Fb z*W30;YJXwqhjy6X`z(pO_me<1$^<-pDFNlRqmVHU7WwZ#&}I6~sVSj#!vn(-BG_S8 z^YuQ|?Te;zmlRVaCN*4KC<%!qLWXY3j)}@K-#DFS?$4EVl_6vyI!fTJb)P;rtTD}Q z_WC;maezCp8azGyD6rW#yaoMU1B4qS$2Fw-edRWZC_T&3ki|d=x(L(}V~V6(hyRx4 z!nuMPWEoOY*PAkCH^rw(X3%J?93eFdp1&Jd*Jobw0Hz3mC2FU5;peuYJp>^fs&noU zd^#AJtr@eWE!$)KNi*gJ&7kK8!dwwa98!7&BUxy4QORTbfShq)L))NZ)YLRr#MN6z z`Q7QWlY*0DJSzz=uY*ohiQE&&QCiIHYq4dz*cOL2rJUcQQ(jW|kjt!cF;q2{-Kwi% zssMe?46IjN_P){p!_5x;1?>tB%JKX(1@g*iNVd$MbcYDegl!I;5it-J-icYN;ePvO z40HFf*;;VW-An7``5~HUA5AtGKluA*XNiQ{vK)cj%^f$lR&3L|Oa6ag|Jv36he}n_ zz+hfUaw9NW6QC_3DW8n1wWgfiA6?t>K?Gf0kpyzOdU|8%(vKz1svkPl675#t) z^6j=KuFc&CHo_VDgJ8W5@180nB3ol?(Wmhbpps+|z6jZWTFp;G=+>`*A&ev%8#HGP zSsDceiqTTSNQ1ds%8l)pXC&8W z0ZssUc>I8mJ%#DUiU-?j)Mn?SM**ujF;u4{nE1{~vHIaRw59j@i!NqavpOW~U77|r z$#4Sr6|ZkZS)1!eZ3KIjLr{`W%&gV`ejT-Bv0hW!TCu zn<;+;COOYGpQ=os9~~Pvms=St!Qo%*soYmP$}-z<;AdQoSAgD#;H$`-Tb0NElrE3| zJ6>g!-p~n7t;mx7y-gp_py11fNEK1)q3KJh3IRnALq0W`z&Gz)Gh>A_XHyH?`0}Ve zFc2=wXW{0??Uh|L+SwgmJVUrTKP%85+ zqros3NW=N)&^sebfbvZT>1PuR1~k!JIT2%qE*R5hINVM*xg+$wMZK{vzJp6~!;!l& zB`)9TJE}JkCG#ZUItS%yhKyw0Xc176;-ETkf=ntv>CWM?gVHFzj^fOUyIkwO!BUH3 zThi-iBuhCSEQsLUQ9!5UvF3ZHUG}!Deb&WV=Mb8r^sNfEU2%QGOnuTFJa;c=6c=tb zF4p==5T?zxmK!A4J=bhwsg0vd5^zYjkhYAI^q5ggnh^ZtZ-eDORs_8kDTm6g?Q|16GDSAaeptH{ZMGKz)FaA>iG)bI7(WVmq(X))WvC ze|U!fLIh!rt4p_18m>dH^B`GumeBlYABVj%>VVXXipoJbkAYI|_b*KPLH_!-7-Z5v7n|%~G1C@?^(2)?(VTlI|ub75l5A z%dUo}N3z`xEUmm@z&HhL&#GG=SJq|%QYw+dh{R^U7<|fGE>*Q{kRV7Oqc5{fDt^n0 z@?ezVX5rGROD1xqmBVJMDV?0sj@=EH8yHj%3-!{QMp8?OpPzQ@dC(rs7KrUs)2*XO z*=Dr6mOFT7-Xx7sEk5!|kq=I3+q>MloW9?1y_$gsuWSy=I(X!%n85+a%Qw3o`CIG zBBML-4DVo3BA($gNhVCzH>H1Ga>`jSI3i5x6VHZk^-rnJ z(4eN5;#@b_N}E@DikS#lz1tt}#z`m?gZ#wF=M(cVXs z5h^ftMAf9CH_-k*M)Nz(?Pru4N118%e@ZY)Z+JxM*`d?2jXqRh(=Ayg3niOJ>fTC) zsP*PiZI#{}X1uu`IjOxYrDlCan9r61@^ks!8{-vyC~R}$xT$gC*RLw9Y$dIvqP_#r zkn{Z!7!u0(7DG0*32jFIvH_EEC6fWNI%rH;?LnJc=G5eU@&R- zsRgRT;i)c<(Fxfmp(a0!GpSejIDxp-5wGh?K*nw;d93~c9&e; zuGMFBaR9s|>#J?dYSPSEx;}?5LS|cWV3LnQaSs-T;B>fSh`p`Z@5rwbDrS$-zOR6(Shrk(y z{Gcy-twLKV_O!~|Be)haa3m9%ET)Q_r*QxI-ozFI`=UdttX*p>r*{$2eAg$fN7@N& z!5ptsjyZL8ajA4zSCHzIxVwxe$6a-{#}`(1JpV^omu=-DTIhR4&r(;GF?wB=W3QBgQj4! zBI_)Ag)4xML2bnFnk|Clc!o$O#toGgZ@HqF-FbzIzarN+^8_q)-)51!3Be%&hJ;=@u zEcJLXJJG_rCfL8}dG&X(Q%g)28v%ap2B?7Tg9q0c-cf=(|x#8kTG;mVS4~3mQlwFlXhDzfW?+*EdxeIp2UE(bGlx z<8c^cMQpy!h29|SvAcEpWf9G7W7$YtjjsRw?S-=QAk9~Lt=4~+oCK2J^&HEhN!_Z zZL;HaamAfq=Lk7lIB%1BQjp;LW@Zf$9}s|eH~}%lycaC29q>;KLvEJVW9}|EMmBqH z&8CQ8nNc> z=@qolOdjsV_%IDm_;m_QGzWs45lnT<>Kgpk{$w%Fp(b)xH#y zGCuDzA|smKU~RncQtX@(K_n6Ci=sL8$5O0=daY{S(l z@9E@UUSCYKMJ?B0e9ao3U_ClTh#Q}M)Nxd%Iyf7!BWRDx;ywQvW&MQ9>%i?3PS80M z<~Z$yHKq-lQRnrS^ux?nGSrQsAN{9K!zKr{bxTKzCd|xg9By<`#i3o>^iYQ8m8Vz7 zB-f}Q|JZeR1PsN?tL8CsqoYxIo?-IOtCbVr%J>@3M7pL<+&K6^E?o`h!<^A->T>8tnuzgi(YJ<~AotpfG4lFKaoq@^$l&r^3 zJI?C-Z-Y`^8ez5kZCUjnS}^FTG7N_0uyPss&Sks`=pW?ZGQDjkSE;2zCWziise?UA z8|=AYq)(g0W#`N7U!Fo*b{$h*k-Zt8rQUcyTxkB$v!p>EFp^t%u=@*tT@{z7_i>K( zFLqFgzS58auFEtIbdk{O4A+ZEr3~m14RP*8 zaD2;7qE*XxQxOuxFQqEv(_$pc=SxnE2WgRx>#+R-8LQg!K*D-Gi-iSsYysg%-r%wC z9f9xs%2Rrlk=O4H=3eWhC!x$%dtrng!XX9+m$==3Sl~Wf4SCz7pp${`eFQ8A>gZ>b zpCUD*j@WePp>?aHG%Rs)kB>m91KMNtlo@z(Q`?`QIqrJGW$@W&*}cOba&Cj961itV>3GYp0x zIF%0>+KGy4qG2jfAD$iR6htyj~7iDOOF`{ zf+Nx@UJlljkTrThpX-%Z0-#KyW1&w_j@cyu=oqbT`9vsN#oPNLn)u5il64XCFM1Qd zr;+MR84)NaLUt<^ z&rPR9Td#vE(+jdYPC`b>g%4t?E4kl-Cmcu!R+h?G2-{jAj~SkF*uSQi=CjwIA}Wa1 z)Sv)-lY?@8R3B9~7!oo$sHnF4TkiPO30^&-j_oYgd%}=VFTgn2@M)F)fhivwD3vBP zAVU%|bhX&@?A8c^CPuD_v3hbF?1YWCW|xWnvmq{riaM(?zXM@Uu7Hs6rE6`{ZF#ad z1YtOYDnRm1)1Ar#L*eA`*q@?p^*~q+$4@$Yg0}ruejU}0eJjYE-=H!YJF_ojlB3<+ zHPJlR*YnM6P`o==7q96z%$D;Iy zurMqbpA9#vUrqRL_j+xB)9_AA&Ig5mMRD#VfDVqo)Qgcq%HqZ@jSo< z^e*TU1<~m5O99i4{#qTb@eNu%+`=;#C%gRuF zCH)5~l28Xf>q}))qxlQ&TN!!d(#jug3x_~@dfASp5v2|?g=X0q)m02&m^~TE4`cdY zlx5GiILeemL|yw3^(9cQacKwQdn71kOAa;;99$=YTAIPvxK5<+kn|IPdJ_MwVkgtB zRpx4#jenli$2Ki)91+{;wadLrI*eSGhAqS0q@}SlXo%^O%y_$PD?G@`&5bpX*iQ^H2x(^bsp=s5&EvQ{71sUL+qvpRP z+erXgHjYHsjL(!5ON+e$zYTaTH(4~H{O;1f3z(&Ld?3OafCwfd!ZIPJtZ36m(R8)< zvF4tsvfw#ZGhdf( z8?VEr$^lp;Bmb$m4)qVt1HzIV!Ua2I`zZy#26q4MC@ zj!PG{5EXw7&88+EbR5))?HXc*t?8ZxCo<{qs2F)u*_*MNNSNWPCbBz76L}^=i}2O9 z_1WS_yHrW+=#rDi)pFEme~Ky?0aEQTZCVPu94$SjN{VRkNr2~D-I)AeQFQ?Fno>3v zLvDJCxo|(~gY)@5G$_rHJ2l_&Tz8u62eV|R_cWy)jwH-Qtfy_ z5t{YoHC}52s0-Ji@*E8cjn;_P>uDpQjNitqPD9Jn^4<#(;T7Sozk5l>hlv@Hw|Tj4 zl<1D9ePbI{pp+UK(*aphoVJI2Ap+HKvp%Ug|J|dDThVy1t>^kAlmeTJ57G^}e#A8+ zFeks!q2n_x)jZgJTzK2Le=i!ITUQ`VRfHZ(*`xsrUhT7kiR|TG&ffd{S{r*=loj5s z40=^W+d|B4oJX=?i9^e&rB6i>W%BQNEO_D!i^=(mmZHdd0Ld>OAQQQBgIZpOed1Q( zGsN5k_MXz$_C7RWmZ7$oWQzL&^P0n%FZ0R=};wEX4U#uTES^ z4AILcld3xKZlj0<4)A8xdu;a35uY?b;9G?r+4MxZ^WjhwcfN~K@_f~h@%UghvtAR_ zi2hlmQh1ZF&-K@R&&vLshZIHhGj|+z_iSgFPNpK-fLSy0QKrXzxGeW~Xm)dkmI1V5 zeCk%=dDB{Ud=8W+=>cZIDEF20^y8ikC4K$?iq?m1F@_t*Mh#E4F>u2gP5U=q)aj9? ze~?2S%-sGE&;3Hjg)`T)0i-vT>DPxBr8c+TZ@XmNvv_wz0LIxflydm)5~rAP&&-zs zHCm_n_1NQyzR{md9E}mgOCC2w@G=7yHO1hx)i&x_L?br*VCkimvIe&i#WXvDHQ0abSC^0!9&#V2D%9b{!QU6(}H6*yW)Xhz@>w1;et&=DY z{Kv0=AVk^fpeKez?&gSi%v>WU5BkYeo2?2jITa9|_%{&w9NCk_u~MYn1v_mzn7MR# zKI9S3xI^xDq3G02Qt-(wA=s^KF<$ZRgVs6a>>OPqZ}11&`@rFQO5pVD_*b{l^Z6S| zqStt@lp|9)*dIQvTMO0k>cZNk?KKGW9j2SY-p@`A3F}EEoCO7G!4V6(yhC#a?8}isnGmYBgtFa22n*fjQcBi{n6uk1S zk8FE3l6KM!&nlc);JX$L0dby-65?LXVfzfpzFlK<7OWk-VenD39ehQ208xY_nH4>co zGkK#as_IhAhh26?t{H|I4qLE5Yx^u&&e11bdhG>p%?nI_)i zO)(kTF!@8+6LyP8CZ+J7dRnprJd~QaHFUx(+wrQ;$ z{}6hBm}-wwur-+2vvh)d3F|4bS#fhb+$!%qtpv0Nl&YWbzj>KQqmp*hvzI+70@hNK z-n}fFS+o^{*&OwOZdM~%BUPk2);DE5+!&neey^|Cn0m`K7Z05`XZ)U9@!(j?xcNNg z7jA!6GO1)kuJ<_0%Q@{fD$YGtF_(7PsWUPCtJqOrm6il$P}nK|lP&2#R|nA>$SLi1 z6{?+Lh_=a~b#Y%eZmarl%1io0m15Ox4tW zPr5;y&nGTArVMxTNnCIToZuyY>QdCd1qXH7wd|d=f4e#^q0II_O|5}hBVBuPuXZ=K zPH1*xfAabz&1q~M_yBDh{)64$j6|38TsA}{%lydWLl7&`R8%#+-J;eL1UM8;@ zWbLkumMsm9iMzAtknZliz(fXllPzBh^-sK{c~?MJJXEeb#>11H7Z#5a3)4vG{MFkM z986Qs`6pagYpQb&zkl*0Udb$;I*^~(-D4n-G^;-KDyYbhYQ8@0))%0+eO{e$a@t}cYd`%0yOPWv)+%Tcw`0?nj zLW8xb_j3Eo%P(vTLZ;NgnUMs7V-;ljA|7k0H1FGQ{kRXYW_h&3iP;%Tqax^Ds1T!u6K208bc0_Xc%!V==|N4XCF(l!h?d{(d z$ZNUPbtH22!Rg@r1j|J+=Dy&lls0@Ept@uj(ZhcZl!E`faQ?Xrfmg2yq4JCxiL)!P zkkdYDIiNa5A=C8y(Os62|KsT^!=mcGw}-9)h8{XZLJ$UNX;73>>5v`?>5-7`Zs~48 zx}>CY6p#UxZbleUx>MeR&+q?U*ZBbRVP@~OSKRAfYp(-zULnsGyK`4O9o~sEV?}9| z5qe>mo(Xz9SNk0siz)pu?p1j zY(@8&$13R>8vMzM4eBA-I?2F#Cl3k?O(Y`|E#EcXKHjYgcBNI_%rbUX^sk2J;xOx$ z0-3;<=h(g9hMztV3XURj?5Q`%1e)?|SooN7v>h{^_4@t*;#0FCR~LMQB-N3+d zj)%GaOQI2#Y&5y98G_(Y&;kGJlim%1DEC|l=J=GHVpkTy)L>>PJ~R@)-2v|$bN$go zH%+ADFDgMt7+FO=Yv;~vpDVFatCIei+9+mRl$w}i1AQ8jcz)>-<(hrcYggxcU&P4% zc`iIa!1%-7=_}jnGp4IreO@;A+~-|lUE>Vx1RT$<71oQ&|Cih8{$Jy&GeOZ9BM%=5 zdyvD2TOy{rivzKuL(>I0J7}l>do~DtyjhSM=-vZMpP|2JyDp5uzBybz0R|`E_O$wi zVJlcMUC4xyvyizsE3xex0s}$Na#ts`!^6P~zK@dOd)MULz|BE;$E=xoGc56IHwobf zuA|IaD(>HD96_K**X$iM#0&?Ey$TJ)SGw5c^Wl~%2O?(KH6Sw)`T5s%S!Q+jzHLqRnr715vWHo=3JAEnKO0{y%wll8duHw%P{mDjW*Gxl(2WGf``smr^z zGx)<1$<_*)Z+ETp))}JK!(UX3#S2jp7u|F6TNx(5o>i=CD}3o&s)<0z#+i8~Ai z@ey&<@SApKPIn!o4!%WM&&bszmJz?k=45CMXpbOg0lzC#t4yhAxE-9do2Rko9T4yT z9C!(3`W5x>nVVy8VxTy-b`rPr9+SmMDeiH&hjQ~<*`C0TX>+U&zlZ)Eh&IHt|4nGI zNrcyN&=lia+fHemjAcGA77$^jYnCoA&t1XwmoX{wQJ@}ph97)}1Sd@PN_xGAi$1fI z#>wk4U{m29HzcdJ+c&pQESUaYed@F4NgDZKeX=Jf^5v%8OriqhVpqd5=q9IT`Vvm~ zt|vWH=~pywG$l}JwGp&A`+LshRl0XDN&VJ|{GHWnOoyWEI_3)tVfF4OFV~`zs-FkC zaknZz=lao~>90@3l;!c9j7*+8Hri|Y+iuNXZMXZQvrngc(>wgNa+VW1w+|okY$t*UNR{rWmjR4IJ?p1n zRDM&sT%rx7)XUrMQTX`t8u#3{EyA&XcdY+ZKbO4*k|w$9bx^?N2`<1z*gvnNW-r>O zJ{R~M;6UWbf79-#KsV5kU3i^`M_&61ymB=l%34{F-vUoQ9v6_%V+TdejemH9Z6=eu z+D<120s%KB@@44PCPMCSZ8_yK*hhA}zuDo~yxN^!t+MPbJvP=4^8>Kdw6iX)#KWxB zgaCTvD7kmYE7vN|X0X)DxuT|PtiJQBtJ@MH$BI-DC1<}e zLx*Y^9Pfgh-(Yjmai%tfMkX4Z6Nzn`M{$?UL%$#)gX z2I+mi5JA@N?H`3EN+8Uir7+nM)b+7 zX3xsdZh`x6WOq_dZ-!k%rQ8LS23V(Z&SNO2|GFymDce^0;$oO91^WyLul6eX8ug$2 zvU=hI^1rOi-o6|WJ7t$1s;M`NSE9I)^VvPWEBVIC%ajUa93JtEru-gXWi)@%AXoPM ze4~%Y=~lOl&1wJEsN1Q_XKT7Il$ohU%GNy7FRYtcK_S_9R@h}46g!qB-%-$G!=y8$ z0)6s3-&W+aijS2^hHozlbzLGDoyCxmsklAkgbgo$=m^;o29ETxNo+yKjC=)m(VT}z z{E{)QN4%I-#Dm`f@vai6`cX6!>S28U^0alrruNr&&(9gS1c+jT7Q0FNq2qsWCIkjU z*$9K#HbC^axC)Sgg$XXI4N{RE$B+AeYW2pQRB%OuddjZ@j4SL;<@~1x-zJ>yA?&wO z!Vvj)>46bS&3CSl%k5`t3XIj(V&USuidWYYVoQF|4Gw|q@B54;<-NyJj#q!h`3y`d z^0Qs3&X`Wcj9R<&khVE1?Z|e|gN_Itde|#`q7i*fb=7^87|Fr1L>>Rn+>4 z-ZJ_>Km4Pwg+l9l-zK!rTtN#L$6MQ$dKTL&FNe%;u39;kUc=we&P#7W$$q!(x3Iq5 z`=vtHzDQl320Fl>N*dc)_OA6OEM7Ik$2!!L6#CA8C=Ah&usrB75+8H25c*W`*52< zwz~yrrz#t{$oW{6=y&pmobpka7qb1sT7k!@$`sl8m$Q@c7KQ7;gY|(unr7{h(tCW( zA|W#El5zn()1CqtxWN@>HnGqDxUg7cJ{KuL59)2K1w+MJIDBUq;PtOzEZm6-q}!zg zy+PiK^XWtZv`Fu~IweLhRp`6n?D98{G^3w92P9vSkR`}2(PIc6!UapDJg{xz+*v%T z>-hDZksrZToBbUsgZaYwaI8KDc_ zD&utDc$3AZM&+)t_p|Id?A)R=&jn=5k1AeVG2KzQ3sFp{ZOf1x2F*Vu1RH zp~e~K1SB}<@H_)Yo~zG?1*!P5U_!!=YNJi|g?=nR$%;9dI4in@lh4DiuD`H&cqoO! z!}bjn>~X#rtS_62XkwBh-9WxyK!mYWD_{OV1;v*w+=Eu9K1D>3PfyrQ#W`Yp3Z@UE23iue%QB!h)qn3y5j zNB~;0vcly0Ql=n9!KSyL?o_I^eoDFui7aJB!lW}w@acW zCo+m~;%0Zj*Dpqvo#y_p7k~hcE*61sGhAClO5i4OhOPRv`l-Pko4l;nW*7%N_q_u# zwFGB%G#tA4bD$h7En-3^a~;C!A=ty9DSSojIEL}p2>y@uBIST%h`bh0alh&CLjF5( zcJ`1!zz8I0z=lK&30ReUSh6<`Sf@_S6HX~v6s(6>W7pT!+mL{33%Xsoco@^&l~@H; zc@EUL_!A~>_+Dpp&}jX=kZ%lMKSk8C@E2>!b*Il(9ImPbp?2L$yIMNw*1B(0R<9$3 zzDXZuOEBbM89(sUVw>o>G>Ka>C+IW{mAe{KYVas4w^Mkiwp2lKk6?>i-V!QN@G$ znNvxps;T|+MZ78j0^26(kH1a#eURJYD_r4sqlQ|Rozau+>>lkx%4lj;de}P|w!BKD z0=_(sW)%fDLylQ|#N_)h(9PK&QE9K){_pxS;0WS}U-OZhRxbP>@s;28j=W`8zByqr z^KFhq?cO(@L6;lR9BphvoR`QOmDh*ZR792nnAqdpmwYp}=Lz9V#y`wGtuqFqi+Sl; zWDSNoYJ+ZM z66J*Sn}U1D;XBKL_orFk)^{=%ZIHmmR(vqR$p(M64AP~r(&$1+=J^|ZYb0%2>z6_k z!S!06haRD(f!mNraCeyHx8w+Hy2?;p^^k3AeXBqgWb4M5dPm9sn)e^Q-m1y0M%z*NgZn?Q$z--y0seJ{73C0f5 zX3+N^@F;JN+C_cOXF0HM*3us#@Me$K@%?X_aD`d-Y!@C&=#Aq;q^X)?wp^4GHX}Mh z*>II)AfD}#egDR+h?@zl9{P~%g?w?GeM~W+{eJ%pLFX*?WQI{08mrA&KNj~0=XqT* z^V7eVVEGlsA2=Xo{jtY@u!DI7(p1-{N$x#<0*D;K9R|j}Jpx;lIY`HD-0A!_s11Fk z1)P<68bcbjCtlpdQuY+2u_##?A>1CbSoNAFv_ z4b63m>~xClbPDcedn_^K>UiZVY4(C=*s9Z8d;pm%R3nJz>EeuK=2!owCe6aOdVhZr zd#n@e!Rd zsRepH%cuA)b8D+xcXVO9Ef%H$b>dKJs$0F1zCujex1&egRh-L*xqH=BUELzSl_L)rM;E5*&bIwG^NyUlj8MxxyZr*D0P z%)y~6=KNHBsSn2IdTf(T0!Ck<^^f`js#7WYxly zidnzvdMDN>=ZWqqC`Z`Ak7@NwvW&w{>;!XJB#n6@qf{`O->k?(H~#YCpR%l-yTgLd zSLyc-aywl#U;J}L)ccK~Kp#aZ z~Ycu#X9RPyHt(_q}{>!$0o*L;c)Ms`t}ti`Vfh)!}@K8C&DcRJw0q1qMv-=9scu3 z^At9fcbPbCDg}I|BeC^WZjceZ0bkOxai@SouO??o9sFvgedn z;GeDhFXWLSUs=h0bCZ29w-f+fy}90Xp4dgM7}KIW_?M@{y!F1yl?|KQ2=;aVJ;w=_ zH!oyI92$|fIE&Ude+x{ZNjHWkmhi?3t>h@V`16iX88QS7^v^R(&lr4GTYSYw@KNY& z^);)U^rnT4O(dtLp&`f1fM3y8)xsdHgEcMSih-@mOsMUHm4=^hW7k0Cfv zDII-_{DT4wYugw5N`PHhZmh3OP-QrGqy8#wfNqau6z|^=MP`-^2MULycHQ@87sayT z&?aKTmEe!xJdZtqtk|P|IGz)FBq1=)~#rVn=!H5ra(+R-WK^_BWt7odm z#%s1n%{V?XbwjTLTx5XZBLK(qEegjk1ionwVCkU4x3z-YW#Ci8Vp-Z<8S=)t)iRn= z%ghRv_=5ZnT%SW0eqt=S&#EN!4^oK$hvj-a?!z9Tfsb{YUGyAg1|>3ed(QNx=ikr! zHD{|nm67IZZf_GS7jQ}8EdFG#M7}23EdCPo)BWgrE0WS`&w_g>VjDUKb-_Q&Q@9Vx za+iOTJeg(&W}BkxnVqc3Z~wSr@tU1aCFNdR^&&)YnQTuL)M*+lG4Xhp1P*d+P)6#n zu~239I?hOHP zwSOrwpa6D<`E%i}kU#q$jykb82nY^@*WY#=#E8B`72eKh zL+;+nkP3H*z;Xk1Eq@!rzKE{1BVo=<{c2i! zxdN}c$xGc4tSYy$8bjQ^aE)zR`oD!HpE4QPUADGNC^qhBm>kBxF~JRlsqd}nlFLcY zDka(B<^`rODH{KE@Jd7W!qTSw#9`);oI+X{zq@Z$t!Uk+hCsGG+p*L=8M0-Px>m^6 zrC~sdwIL?yPBcv)Y>-FiaR_>|&9jMt*-Ruw?87;>+0t%--iVXh^Eps1;P6|SY(aKD zbicol)FDw8Nz^$)gwK;CZ-YaQD|?_S_*S&(xNvZan88b@6>+obLQ|=^^}gy@Sr+ay zbayv$q(uo>Be$0x#|E*?H2o{fGA(=~dzf|I!n?CAk3gxGw7TX`AYMF;R`|CnqN_Cp z0<(peAWYAnuM~eT&_I(K6MJ-WN0-0Y1TIQd?wyj$v)%l|X_em$Qf@VXBx^)g+cgFf z@{7BgNKnw8(}v@WS7f(x9LSXar>ynlx#EvggXuPUG#k9P6D~stfq=R9dl9nek1c>J z(f)AVES4(4sHeVbPTr7j~qY zB|VA9_i+Qa7YSKC`l_fkm$XBKFq{-}mu>2laV^`@ zg)o7$oRa=|ZT0^WlZ-yLk=B}N+>#vWMCRjJb>2ASbC11WhIAqI_?}!pO`D!b!QZ%= zOZM#gHw9-;XA1|U=lMK;Qp~k?jL99&zuv2g`PFW6^ojl3Bb&p-(ID556|hCs-q|21 zT*w#EqQQ3?BWm_!ctB^1SXZYnLGba9-;#hcWgBDq&pGja`(a*AwW1He%(3c?RdUy7 zCzlb`x8Nz{Evxb`a_W?>EDd-ZR;*ZS*HVvox53bbT`t!YYGB)5<4nsOrdr=7I)vtK zhsGyW(cxntIYEeTB>@6Z0v)@$M!KS9a+t}7*jpviI(-h(NeWC*+T+9yB~bczFbX-6 z0G0rR1Zrqd1ZW3Z>4jO_ReiJjy~&2TX(6gBGrI}>)N(SrYqiU}@{IVrk`n!?-!Ifz zs8DpR%|^&-#%d+_(;Vin;R7~tv?76nc&yi^p{8=-7{sF}#iU)%*w-pp(ByS?Ia!6aBi zP+dY!;Cv#5gZ}|`Y*0aJkQn|5GpmA&=b`cC_4XnpAOg5z}0^S7?W?>jIE;0Fw z|E$%uF--5f)VKVud8XBfG7}(43D&~T8zse4#m7g3gPt2YVVK9bNC{}OC}XEJPxV~j z)!}8e-ZM)??@9xMutr9#5o2t)#clq?;6RbdafZYsi*jv%v7mFgv?h5qa=Tmk<|Giv z#gXPJ-ygUZ3iUkTxXfcy%DlCejsMa5(f@w%#8K+LFg4Puc~>Ys3+MyqSl2Y~hIm_(s_snKeP*@b66;p5G^) zjWUldqEGDIfK9At)z%>IF>h+g_UxSwiSRk&D&A))q zS_B2D6d?d^CE(1Ov{FsflO6?5`Ag-M{X{i&Rreav9m!3rQ!Sdpq&24lD?? z9(X48pMGY#6+wjs$PFUjVzd%sF_j(YR0VuQXzBD1LnCyBxI2a1D>#qC;vivep^?d|jvicd2pCWQ#e^TsVYg>q^pCcz8W?-2fa;Jaf= z+m`wLHNmfsWdY5tKl@K5*Pf!$Q&9AaUTCtYur>JEAV(3kHY|`N-nzg4!VZUgR}g?K z#Sd)z}<{ky3V};Bv)?EDAB7;Xg%f)So8qu#zs}gOw6|3=RKP0q zuP%IDnLB1d_%bVKu@%=urQ5&>ISjhB?nu5!vA`AZh?+aU;G_+)t4f6sQ`yX7%-+T| zTBO*`n4qv#UvBsg?gP1tV{4f}R>i5Bqq#EZ>pV7v!} zFKo-lex*U3wDC$gWu}1Kkb~6HWxR2+h z6D|t=VOF{571^kNAYNh#zTgsg|LVBlLv9~ETPRS7PslsoKeA#~b6i=yCeusLeg!dx z*md>fX5R;(D>mp+eIH;qeT~yNTib&#h7+wNv=Te9s4wMQDlr&(@R2sQPt@=885|3*S&;Q(o-psE#QrUz7j60~3t6*$Kgh663eDlSaHN8^vEVLiMb6;`TX!(NaiLPvf1 z>9x4bLg!?kso;>}2*8>g5fBv_1Ys6qYKM8nKF8L3YnWS=hx;%(0$yEv|2Cuj?-?Wb z7d(w=pov@zLr`GsCEwX~?X;8jtOcEl8rXS&qv zkD#Q^Hq!ZE$|0`G>tO=FM}{RGNgP>kM#SwQ!G-e)`(`&tE`a%!A6|fc;uvlflFzXP zIO4UND>G;HR2mM~TT=Dkv*xRC8_5S~dO)z@g2|)0W-a96%k4g<&vtDMimjJ*G60)o z(y_>7De`RM!}@QoY9~U8Bt#X*<0$_H4y^y= zfd>ZC-_-XEe^;j~4PMsJ$h~RI`mTe19FbwXp!^Szt{#Xc2a;x-^-$m7;*D@;{K3U)%++-34+9q zVgVvpJ8EfEA%^Bo50rTRv!V{RTgG{%_)yVHAFTS3z0Cx?rSUnn2Z%bo9{z>`| z;t5C^F}jS^eIu%Cpe~?Qr1_t9eLW`ak?6z@33dPmUe++JJ50w_i{Sh9PD}Z z@s`^Y>ocGm>V16I*(!LQhPA~Be@~jy=~f)t#yVS%-C)6gTW&z69rz^3WXgXz1uIDuh7nV_2UO4sEz@eV&A1?onrCGcclzNr9e01mXPsFr?rzNyoal|PJFY5 zPxa3A$&(D${2oTK9trbbT+z2@GlmQ3LdDWkNIJD+gYJxOW(Sa>dmep^Ic0tFG&Lxt zEl_2nhY9Wcf6S;~-}UF_f=hvFL@v)- z%7IS@20eK!Ka*nnv;QGZR*+{?Y2a55W)qM#!pVE}%gv4uJIMOGQjy4~Yp5#y)lo-; zP3^_g)XXX-wv9J(1zI>`^gv7j?rmW2ESvJ|kbDr@Uyl%CQvr%`6yFBq838IuLUU&O zvFAlm0>Cpsa(WNX-t+Li!gyra@eAUeZ8?$LMlAd_@J6QOpnY;~_Wr0V|3-@V?iQ6v z$|$$*=T;u%5$}*!icp?4)8T?Y(_tgnSA%Hs`wan{)jKD?epCo z(@43$NT02(yHB-V`aBRONdfB3vvw>VQSpmV97hqowBKjP{l~+3+_;FXHupd_gmHb* z)g?E@1MBU>50-I@80n!mQ$k#Y5tcXQ^u7y|#*zp~xV4(JFha2HYelCmuRt;ctiBrpSw=kX04m!w^I~tBMl12f^%YdM)+1#n?+Cf26kWgR{uc@1si`%8p z-xD+$fQUGvv3POM?soKBerCug$;@W%TeOXO(EZ!>E)@ObKZznkSC#ZcXJETAwXP}hvPxgvG#ih07|AZ=ug9Jgt!6yCVl`~ zIhSuFBLq~RL?S8`BAL zfgyZ~ahl<5Fy!%qL0KwJ`tK%P1erKc>pZ!JNL^E_RP@s0V1Pa!AcctKnaXr_i5lyi z!Z%{%EDxe{anti%Xqy_?ZsG!x=t*1#_fNT;&kh)}?{~~47~a%gTsH7*5)ZB4=wE-W zs?YV1CWu4B3O)3E$u4}y#VX?49E@AdSasdx;(J}c=|UUFT)jHh5vXFf&tB1f=cnY1 zXoUcu6u+-Nm#LV3C}H)43TXyxg=QmAsMOQ={t!spxR(2L(56lm@0k)Wh5^-65oVE5 z?h}QMj|B4Dn%i(2<#s*%U_D#q_vz9dwOZwu z_fx`}MSF0c>1eKUZdnE6H`y^qw@beu?fHMb03kIpG??L(jTPw)P6cBJt8lBKz$1|I z-Eg3R8e>Sy*69q)C5FO6{jyn1^9fwQZA1m9g*6{jUmhP6?iB2?x0~4o%fv9g>v0;BI3I3 zI@ZxHNWUD06G;}627tM%47OgliI)+ymZjnb)&F@^Xa`p@RXh-UtWthy;O zpM80et@k_(&j&(~+FdO!EizHh&u26!;6q#f@gA`eUo(IEWqt8y`o2P9;pWM?IeVSyYyw}EI5BiuKI|bY(P$O? zW%PMi^coO=Rm~^xA3zKY9L%qcNJjWbq5Tt!%;>W8Y$#drRF|n(iK{Bo>-1An9ZC)>(wMQu1sh4@|~N}Q<sAy+{fB$-rE0-OHSKAC~1c370Cggh!6L=|Pj_ zV}*0*Fy`@}O;@+1HY*IxTa4ao({zoRgSM=N(`P7^JQOw)T$Xa+y$)F5L#rx&uWmS& z7R-~SjKC+jHBd26i=mIoz{DOscT8)f5w+Nf+pihxFE}8fzT(3X@S-^5>)jm&5P@F$ zAE53qF!$zbTOs$mqoRfuMj(-cl;I;PfE*~1slA=Tw387iDc;dDq!;9Eu;=Q=-DR(# zH%}DRBEt^S8&PUsEnGYrHwD*q7$f5*88|gu);=EAa29>yD5fz>)gth(88)q<)L$fL zALv3ghE5!Kk}-_%fA4c@bRcfMY%$ZP$G?13u4JiWrKb~zfmvL92p_H*U2G_PlY(HG z@_YyriSv(qc2)V34q>fL8uhFul&xh0_S#GS{>!@T(&-7v*5Hd+zfT6*JuCzme!5SqRq>yf(QoQ~AKb*# zarZW&dVb~zZS4xd{y(k9?xw>-B+Q*KbTNHH2%! zA4C*Ec^!#;09mUK4PRhOEr4jGv~I+wTJ0aJN)n0bQ^w{xa1{j_JbTBSsvo z@OkmyGr80u&unX&y{=K~sQfD4~% z`3ph}jF0N;C;Entxts(hH)TRIQ0Q;5Ra*^vzx_*IKRlkLc{Nh>id`Ue!1I#*ea=Ny zQ#i!Z%rO5RyZ@9y{DZs(&+T|*{NS}q*xZ|rVWBM1G(*G1byTCCQR~p-^FM}_g4ToE zbs4Fcq0!SyoFNnUys$%m6WaF)NronQ#f=*qWzpCCIA27qD~4Wo>$4=->&#~8MxA-E zu1}ZC{6#wf1_}x^{Vl(25Wy1LixdK9)6SZ#KAa>TKA#gMDaEs7^78+h<2;j(*d|_^ zVl$^Qv|Y{^;R?U*tgvrrcQzfCeLHB?OOK0&SaXcpJZM}>f9-rv^$_%ZBhda6PxZTv z{8Tt?iZHTls8^B`1IvgU@X%dEC!Cw` zg+)p*)5PjdpXi;cOxXFQ0~sMcbPTlThl$psfTZ78w?GVodIXnR1SkPU4H0Ud7`#3v zIvBzx5c;&5w1nEAt1Hlcnht0ci&<5s7pDf@viL%yQRb$V68Mko>lj5HEGA40GVcvC}j>_iU zv73W>R+~$!vOV7|`|Aq7<{n`#d9)DQ_S!PHOW4Ayw^}yb`o`suV4X^;HdhE9W4A*fK3vWq)%Lb z`YZE9yU5R}wZ!O-CUKNj8@;e&&y42`^r^rK5!Rq&2_)>P!^qSOhSrg5<5|UlYi7Qj ziID=^0X!u~iI^;b1p2DT+tAYkRmoSCjv0Lw(3a?ovGkYT`3na1N`Swg`;C{3KJ&^( z#wF8YKUhv%G0c54R?1y!PgZhIimW|GC4)^?sW5492*WuLfc=*9ACj+!cW*%7 z>o2sn*USCNkbS&W3FdqoE4H&^kBnimslF~_`=nJ61G`xF(&&G=qx;Aq&aA;(3Px{r@@ zH*b+3?oe(7@Hw4=T?2FH=NW4zAVJBcmOqkiQs- z?toB3_qyfy;+=oDmZEoeM#kv)D(3k;^K5>kpV}Po2NY)>GQlzK$(L}sq_1LJIl%X1bYI^SMz#m6^8s{u8u%umK4U92iU;4?a_oDUzei4r%^<%>RI*5e{ z`?u(Ky6&jOEh~NLW)3R|?qGzyNUNov@ap(s@m7`NtdtkALA%nFGOE^iCI*05UCQgj+>qN%HX-BV43 zr*4&oyq7zCB5=y_*;($M4|8i#&Ei{j%NX@nC-3Fiq|cP)57l!}EPIUs6%V#!E`y|{ zq(?ST0~cHdM9!GXFbUj^TzdkQJm z%AqEtmXD7u=e0N>l&W^NXvybthEtti9r?lX5>{ccd0TuMWhdzyMJ+P4n>(ndHeHeY zOKd_sV&e}wP+iX+xE4v2URU1Pl5wnm z6L{E1&9jkkwDM=mha-Qt4pa3ioEn*)p42dZ_&zjgX@JQh`9a#K3oJYCwnr+*=hwT$ z&jNKvrWz2s-=g-hy)Ka8`mI$L5%9#HcnYMQ>J{fRc8B#F7}>{{lr3~wz`cz!TXl7f zr~sC4j|!I)fS&Pkv8R(IubJRrWkw#W@kNsTjjtf7YiRLP_Q~0%XB$Ivso5j33f|cE zeD1#fwQ*A7_Jq<|&j;wo+UfZStfThy+?W%Pm$)+$@iu91cuDH?n*kMJl zwoOM}{Pyh5of?-qbkogSeX|*d!v+ONxP_3i)CK@f)qwn0Q@{+4)T^8g$aKD)4dk5TEZeH?d+E4?2kd)2hbRu(hTu9u@YQ6dNbF<0X!j5|bPTjs+ zPZqnRY)Z#MAU$#RJWvV>wzvnNR88^A4%R!Zh9ld2ood)31I1YI59#-#57- zZ<>%NwdPySG{Wg4H_}6^SA`!PYcJj??J;s}YeG1#T`K>2F!&{1w*$nWUNVtVbe%nw zVc2uL;gxTSdT_Zc(X)PYE0MJYCMfqTk|!#nNysn*OJ;#=rr_)P zwSnjxy`JaCB>{ok&<`E`-HzC{w-&cpmYvAkpNL?v}hEk7^r^28sazr-=6 zKFh>)in`zOC{484mv@yUDC-EqlS%(bt1q3Bg)Y9lI3|@&(@AxPhGdE@QCg}i>xAol z>dMjPIG5Cu(eZmg3HG*H6D&a@ff-jtqmeAlvL}h0Dtg)-t(!&AuTK`RC2;Jp`iJ5k z{@wd3$}fOBrgV4k7Y2CqPAs?Fws|cp9AXDnjN@z~?@ZpXgW((5koOt8oUPqMS>f>B zHQHv_S*Svfw2NkS4{+y)=pJvHX!p=`R-f5^4XN<{T{Hgj?x#<|zJ}v(zY_DV%d&S# z3%r$fnsW1!UPq)h4w!@h8n-RXn4%R1yf-nO4@4fJ1O^`b5DrtP9BX=-_0m==p=-7~ zcT|!r--noNn`>aRsp+|dx%tQvg!C4o-Qc=Tp~ke6i|Rgn>g@q$0udsWs9yeec4?Vb zaOZ?Cc_Gg!E{&?gMKsFvvQkJnrQ{Z-Cu~LT4Ou5lA9h&!taoAQ%8*$P_OSRs!y}x! z7xa5Y9Tzs*f`xw>fx@cvpK+DmsZ7Y9u5OwAVUc8>GC-KDBGyE+wrE}BZKoTQ*=9FL zgEoPi-}C8C@yq>LWRGAuh_&ZakBG0cd%X9i(=Si_XkFVX{2+g}bik{eAt9!Z>4T3f zC5m@Kdom-fk>fjy_O;?lic?nPCYrMs77vTP11=&gHU_oab&Ph+K^E+IMQV3LrcKcO zG}DU*iaTwM$_iClJk>E(K4yeJWWscO9*g-}6g?Hw?TQT2IA*TH$UW2L`oJxujL1Qy z0&DBW3=Q4Sv0)P)j8*t;x$`5Oj-*hst!d*g zm{b`qd#y)zL#iAgGqPBjhU}V$9b2N7al$`kctd&h`b*xUn=oI-#Kk>MuIB$zJkG}% zDj>xX=P)yr7tg~*Ed6WzS_|$yV7%gtE+j2TeZztat!9z1a%sX&(orHTm`(EZ><&Tg z@T+IyeDq%Vp2$V)<3sW3nlJ}XM|ozJ9?rze8KscIz|+}X3WLw~H~Fo!SCox_ zUH~;%%GU0QzPP4~l0psvGh?!cr6Zmlm{|zm&Hyl#W?yfKc9G!kYR=r(OO#VRPiu%| zLL%5X^pA<^;J|f0npP8vAJKCj(mQtH6C^=GiT$E91hsENB_C&8+P^tsOplbQZoY zpA^}{=emc@3(z?eg+157r7ZidUAm3fT-Kdvy6J(s!zpO;alyVcrwXI@_FPAXW|FwelbL1JBJ(qFljk)!>9yx>q=LGp8oMQy* z3nMeiEwfOE@~o<=I5QDju?)fus>2|f%##zYFV(ucX^IV*C;bwNg5Ze+MKJmUWGeLz zm}E@zQ2J518B;p5m|)gggR$F_i2@1DoqLI+v30YjhMNr3^w%Ek+A?g!-<3mNQ#V~= zwQxQcaFC)u4dEGpp*j+DqIEX=diKHshm)&3HQzk7()b|B7h5sP_Tq64J|grl5qcnI zi8481QkoCjr<-_>9v19Cw#fz`#v@ZHsx>bMy?F`ukp?%taE}oSR1x+*KV`Q z!jW(9MXhUO zocE!)fRkE*cyp>Odf9LX|C&#b*iPZ@IEvJDNW8A|qc5wMDb;z+^S;+0Z-VQ?(HzQx zvNdx?w`sI`+_rJF`okvi!TPuRjl<2Y%Pkxwe31084RxJiaPZc(nnu)KjfJLe%^-8a zWt*yl2Xez}>Blf(%Y^-TKXJJp$U}G_qM!ZZTK3}FUr0H7(3CL0P2vyn_&Qfhqw3iV zrMO;!K&@LHro^ExMQxGE9RPdPXC|~$k{E3(`%p-j?N0pbG$EH4u4{&+z>qiQ=`)wd z2VTgftf#vBEx}zh`y+gW3p89n_JZAI5|(IEIoO52q*`7+Nu2<0o%U=036f}&g44WV7ck0&@EkCV|3mOzmjvgo)kqY{e$w`(uv8dHMP6T95G$}VA1eCtO-Nq| zPb{{TMsQK7zv&o{IFZ99L$8GI|D)-vg4%4jZi6OBad-FP?%Lv3D3oF?P~3~Vd+`Fr zTio59Vnu>Wv7o_&yPWj>{xg%wMP@R&cvjZldu>^)=P$pwMUT!j$mEtUAp9TQV|EW+!R;G6qvH6^UoWeK`nzTo3|^@TW&Z0OzqquHS$q`E{H9; zCpxw%R6_)R&A+8kYb6!Q;eFFEN_(9Ww{5orYC{U17J*u-r88V&_HQdETM4hQaGnyN zNPjojPli*K0m#E~F`8=T_|aBQZg|m0xW3A9(rc;-g1MVGd}$enG=121NM5Yd{76)` z8s4lcK~eTzR427v@bR#rPUTQ{#&Tfu=HV_7=pu4?|rmA^rY~y2$SSEuG?q z$$1=*Wfy7L$iC2$gVImq>17KE1F+K_o zzg99IxX@>eOqF6pZvSwd6hk+YV~aXSYIpeer|)tyk<4A0lj>SVQJCDsYyQ)ZPrrr-*5+{=Wz3^-rPQd?IQ7?yI0Ft%w z*MKs2-G1w$9V0=Tf+gIC`XdYS0wZx(qI%EUr;* zY+aM&zs5Fy6+Ejmn7*UZQLox^)Eh2r$iP*{iGVCQbOqN=*X@2%MXE?K$MNjB4|$#y z!MAk0OYSiLo+{5o3;QHCmg&S0@)}LGEF7w(+SLa8>b_}u&A0WOo2ty8qDM;bGcy_Y zWL~X#38uTWU{T*k=yEK%;+%4`BiJDT-_1;tRjgzS*mmfLr*OXSSvZ9>-N|>`+}0~S z?S>4##raf~kx4DjVd)|^vgZJ0G(nK6NJC>K$hVonwZSU!2^YU-7ru2DwTH4)RNW!( z*|9m++NF$kU3P}DgVTWMMfSpIFK87_2`~CjmLCSX{UW&r`I;7wfEiRhT_newTcdZq z4&CrF>EoTI@lvhSuf-p7zSBL;R(}sKfi*i{T&8rWwUGz zVR`*9w|q3cx&({8GU>G)og_N~t8l@@kaeB=fFQZi{>VX03yEWvWek+j>m2hg>QsXD zwHe<8^SF&YT9Hx!>IjObam-rJYx@FbRE4Qwkqo>Odo+riw2Cu$@y&pk(YJt?Lxf{s z$*6Zx)b?k*MkDndm1SKtjTo^KEd<^)bumsU_`%;eVe&8-n6dw6qRB3ia6F!pnG*u_ zV+iKACCMVCM$O7l%3$rWHhg6{5c)tBri29R=t#}BRhV(gf#te-$`V5J&;77Z1Xq~` zSbzQ;({#Xb!b(jeIxmzqx_h_VQ_wBr5ITJpCLmoRfg2ES5?ToKN3sW)sbCU*@XSEKxs3pI^DD%=O&rTr z;q=Ik_Del`6M6{!O}kG&rdV1d-E>^<>_5atds7>~rf60>l=o^pPQ!&0OJ4#KJ@j7x zYkkeC%j@@(4Rqy%VWT^mM>nG%mZ}yF1o0|PKM=u2ixj-B0+%tHS9IpT`#7r*xBjdn z2exOs>=)Dp+Pw@$S5=)F6NRi|1^^!3e^{*jYv(S6B{)%qW2f*@%)gn{RpfA4P{uO$ z7=L=ytkI8g#rZEG;>iIH`8zS=1>~BHyPa0ZM1)J_OC5JW%H79rQ6Ik)vpwh1UGJbS z!_&wMv-chLW0mj&^V)w(2{|l&l|5?BnReLe=-PL$OfIMVc^K<}5DVNc>F_O#friOZ zMwO%h@0_XZSA8bV7q)d~7L+mwkOF~KIsf1|7bjL~4M?sey=~Hv zO({}{BDLkz$L}MX?CqvxNXTqQDK$c;1oytT)d{|41s~4qX zcS{l2P-{SxW4h*}sm`W``Vl7?YHDmaCt9rVZ7=N?30G&}rU(zEpe=v$H*_vDHI4Si z-(do~3tHT0-}y97E2b=8(7k>iMbHWOhF|{)K8N`TrJ3*x3t;O2em7o2%eMOa8!S$0o^)7JmZxSak?|B`uvMS|Djw+BUC_ zMq?@&(P|b2PJZ;KJ6$Fs$DMZ*YalTn+CI?YU$nE`RgzWzXqJ!E_YVJm7GQ+$F~dGf zVpVYQ3nE(Vb|omvX?+Yu~9~sl{KU$!ze zS8>D858t1%3N<(O)h^?-ba?mJ_Z<8ntWu;zmO1-0v`L11a@KaWVlQ5iXDsl(8MUL5 z4~9PYe)09oy2FCKzwPMUqI280{pz`hpnDaGeb@mTUw>RPVcF`%QS``;bCI{P=uS#(AF<6{q*R=>JyBA6c z*!|&G_387g;Id=z!7HBf-<`wRyj^oj;{gfsNEQqqtUY*H=Zw`1 zD|gg%Y^#^m-%#yMiHwjT`_mktSb zY5iY1&P@U;TJp)h9wYkmoygbERhIJV{FAU>bY z;qk#0VI=;BFL$2$wfApav@WSmLjwuu9Dj`EyV94kSenNn+K;+fxPGvDH9>;+x_;Wo zi_fXqE^%4zw`R=e|5Jx(ChDvHh`<+Ky1Z*5*Zn)|V9;D`%^COCoOLd5;lql}F!*r_ zfx&C_$TgN;;aT`NVGsV2r8nmjKg>*5*0xn#sr60U_-ymiebe`L_BvFVK=00PZ+->ARmpVZ z_c-phb9!^aTxk`oWU-{e1b`jIYqut$i$3MSO_Q5DhJ(2bfoawA^@U^4e-H#7j4a>C> z#7885+-^c>(s_ecJX?5N^l%o}UuPogmV>?sq)Lvluw)|d#MgiG(?w%jM*7*YnRn3t z%|!Xb(&AlD4uEi{Z{@;94~@d@0eF>cI^4GZg-$eLSYd`k#a}yj6+I_oF~hvi+NOS# z?`#pEQ0e}Wyc?&K$6D|Ry(TE7#7pvre_%N5*U4Q;>U(S_=u;6(M89_N_GCe9d}U|u zoV}&OdPqfn`Is`)lS-VnVm)5RBIB~jJs=5;X2BmjA@2_#5!eJJkB!yr*hfoZcy+#1 zXmN~sGxlt+FL=H0cqcm;y{DuN+7M(HXD2s{exf7p+;VaEN;3c1{3KRLLjtrLsebIr zY#-0ao=$YA5HW^b@z+SIDYD?znh)W7?eOfpY6uIT73C@%iPlHk`tFnz=0yl5nfgIw2;R$an{V=Yf{(t!_mW57qjP_M zZA}&bF1DXQs{+2t&o_3h9tWWT>h9ISbt<>SqWc$1m|EtxV4Yp>7RL9; zVbzlY!S79FNd_}>PsZK;g4NKB@v-8&bu&S}>n}%FmzUZqDuqcUaWTW@C%6FL4D6Ey z=Zzo`(?Eedud{_F10OwLC=3Z9%M~Vad;C`KO<}TN+tUvb<+Cuj?|NT8Ic_?iuWem)iw~HbP;Q?2 z$J7@_nr8q)-R6$73g;sJ2~WTu0KO|nX}DANc-cF0$tr+*%=7B;oE(D zS@af6LaGhUDG2D0Mof-Dhzgv2jUx?~#=1P`LlDOTI94R-$>W78yJ_>1B_JuAy(dV2 z8*HleJw45$Br<*#3E2)mPc4t{MM8-8daqZz48+{iJdaXFr?Zx(%v}0Q9o4!Z2V#0| zB{__(gjneYC>C2zMq*O#6sC^*tWd(lyhJfw3B{9(qeNUA+zI4L10J{?02zXg7iMfi z{#aY_b`P{=xU8LR_%Wb`O546dFGrR3HIt2yFIVGdBXW}Tg?fy<l4 zb&2|G6V7-j<<$F@#`=HOG9|J}31~39`>hll?M0(F2PS0n&B}F9#KGyQCRLJNBZ&nZ zwxfpEeIQiQR!EYb@nCsu(@;*qsEhJ+k-l`OVer{~`thM97f{4nlnx4JHEssBXGKUT&tZ zEWTbal7QRI{XiON-$hL}G9WvGfLeKOHi5L=5H_Gp+9+-D0|6Z6K1e^=nNiks@ZN%g zVANS~BT6hb5>VZ<@IB6ksmz_wZrw?T)k+GNi~ub7#c4* zT8RvRz)9BxZ^_(W9HYI$Q4|}dQoyu}1IMmc>gFjH8IiGBIEzfL``dAEy<5BcNo1tW z$BS-uR*}GB@k7s@Xu<(Yt?O?lV%;2LGn5?ZgeH(y9L1XNz?p5HgY(^~ERjOy+8|F_ zxp#E!Zu>z-QGIMFf>twWY=9xwG)X{xsvwIRvCJ$WJz7z|gyl6sSy@QdWCuqri^`FX z8v_V2U73bAE_d4|))lwryBz(8%hhatY~6}oCcbq8Vx=VJTa*^$c>~KSraM}`mbAt` z#?y>U(hD}y-NW9!s*NU1)qU*Qd;3pJsSm4K0B= z1J77ZWA6UqPCO9_`Hv$V2ws?VY-aTMAR67>wrp^9GN%#!L5qR=LnqSY)jCt7{z0f_ z0CEpwtP7PXugiO1E_~q`ro??EqG+_>hM0y{zy$dLfEr4MH=$vUB(3-a;ggEsbVkh% z4}sA_YQykRE@8Dd_R097T%Wj^V(O!|^PU1STEXqAEHHyZ29<^=3b-5gvh)M=Zgo+# z8BUK^l%_*v)h*beTm_-0Pd8)>+6&V^-w}oBk`7YTVli-{B})EuHx^Z|t?@Rth*Z4ygCZg{=hI1!8EsKC{9#+3QX#=j z&t&V!rq-!-J-#_L=4Ck<_x;$<7>wD5dAZwmB^!-=d0s30{?obzM8u8XYGgZg*iJN& zL6j1S6~)xYI&)302Xh2yuce<1B8K|X;gd0W%`WDht?S*jn|o$A-0F6humtcUUuQf^ z(o=dudoFfMEf|zl%sB2lW}wzpwu~Dc!OmrAMat*W@>nJOCb22fM>e!(u>6Ri13!Tj zb#sgi><90X|s!&aM2_Kqy^=SbwcRscW%3QEr=@KDt5HKN-=@G-livPG0;Q5`+rGUWGdvbI6p?B}bZmF*r z2tdFs&o$xqzA!;h%(JGT5@3J4E2rm=d$k;myO+Cx$$wybirPo}(RNePCTyP_d*Z!Ujzmr1*tyRQ`T~60N zV)%M`0AU@C{o9C~8vg!hvNSIlnSl5a%pFr-2h}X3b9ub&I!QBR1mKL9fLL4*KRnoG zVg{hqY;R?Ze^L4z*|WZ6Cul&aP6=pTK+ui55LaRaA}i1Ehj0el!@o7}3dk++Zm~q% zpLeCBuQr9=-|CD{$k@>F!a<~M)8J~F8LFmEV`spEoe8+l!X&w%@Wjo?_sxMW7yZK` zvj`m>?Oy%mjoS8DJ>Wq+*X*Hv|Ke`F$?w^a7HOC)Ig<J@W=1iJShuz zue|H9FYoB932T*3Sq&4wO;d?V;O`;J17D1MF9-az1{wsHZ3P9eWmj^V*7?nk>pW>S z4WWWOMVv^UEP?_D%Nj6))>yh8wSuqyaa(Fk6iv%fUdYv+-DPSn)sKJiSBRjcZhk9U z%=NMQW#>4E*5D;Dz@1}_@05y>cTgSpPq3vds=fp3d zZSv=_gKc4zCyLfsMgs%kTm&$VhKQ(t$Ic8I>_8FDn_#a)V8{*W z7!BfL$ml~uEJJ5b3LNBpgR?y?E03i)C!yPQaTB`}F<(Ctm{EmmrY&J6EwB?OO5RrW zksJv7GQ8t>uAWdI#o{+VfuOjt}wOY<|L8ufGd>8sUR zEHdf}ZWm(7ZDk&?bz21h4gugcaXKXk0;p8GH|(5B5D#TK8rO>qpS^(ow!*w(ka$X% zSPN*vkU@@U(i&x}rp=j1gF}}zUgPvfZfGLxR46e}7jmZz^EI!LE4&u2ovvQSj&&Q! z`+j+GN8)=#0SFHi3c6D=9==>f>V+ZtDTvdXE*)=jL+4Q{1I#8Du_|992|Hrw@8AXX zGlrKSc1@$8&lNeKsVpQe9!qO0BHVIK%16=CBI{JN!N$Ko4AdyUtX+g=K9@0E$!p8; zQkfACNuNvEzrpHI%n9F}^kWXHMTvD|VYsM_yvU7Y7zb5$xtg*h5{P~@T(6{ixY1&M zmG)j+YXUS~_>^l-TAaS=GANH@xEmn^81(*{ooUch^ba$bTCa#(n=r7k3=kAp-;4yM z;Tl<<6-!ACbq^%(~9d`=$-$Wc9Up`QHmuKn9uHbtnM~EY ziqF_PKbzEd2@XVRzsy)sP4kd+!VBZlaaKQEMGke%AYW7J>9uj#QwfxWTfxzV#3zT$ zA|FY`3@ z%?An?Q8YvM=q|isyFilZ=>W>F zNlYdq<>S{f>n1TI9LxC9VHz`NWWSO}PxDZ2J^wmJnWDL$7~b<7)a%M17P*JsW$~H2 zJBonzGlwtJFzY@`c|oM9hujAS9`Ch_f#P)uaI56MAlJr&i=0LgR)fWjg)hVX?~@N{ z%`AL%^(>kT=x&TP&F?yN@@ft_{!Yl)Mm=C_oH@Qc6KG(QS-s9bvjJ?eNiuZU1%3o* z8eon+X7wjzrFUSyq3)moR5E;Nl>flS!g%`ZBX+wCcEAKxjWS_c#rAJKF+N{Hi(77< z(8Livb%>J29ZhQ|Tl|d7jBA0{)=5vQ7aoS+%qwKGxV#2jv4&kuQ;8f@RcP3%1&fch z!{8T%bR5bVaI1TYAi5h3$G+kelZ9YpnyE@$r0v%|abJaYqWpIcmy2kn=9PNX{6tL0 z{g48UiK3FJvWD{>)z68fY7;#bhfPC*^2+V$t z(?1YO{Te$}dsWhU<7?ai*KPv#AGpl`R6v{s zrk=@l`j;viC}D~TD(*7tp2g7SO)z-9H}d2PIuC+hx1#r|`SVB+TVF~qrhJX=ey5zAWpAHw5*KJ(X4Add$Dp_ijOBVwzs!W5+H=x)Gnu71gaZqs;%{x zj`$fur#2U12_9)*l1^2CkVK@>(rc$DWdtbl`?&u7j9&Pwjt7?{ijq=RbzP1w!NA^9 zivT?)8$H+G7lnFt6#+mHW_ak2n`SOK<#i49c?-Ae^NLNLA<||AxR^4O5Z06gV#7{0 z>opur9h-k}hIZeceFVZ!6XlHNU*h4&WqhvNa?~kDBjc9Kn{3&#KdCp)!#)Q~H31E(D(^^DE3X zgMn85fR2Qoeoz#2j)iSpnyUxC@ba7r)XO=1^dL@r;K8%5*a{oQqciq*Xf4c5YHzH; z+T54?y@8ZZXdJ0>S{^X;lB*J z>mRv@_Yp&8CI6!q+CUv&9BpM&%lxzXV^Rmha-raFQcoL#9ValZT02Zpq{p2#p02xR z0%jF#U{qZ~!sa+wh=i4fhC7$A#lLbeJCm@=PWNxcLN?>#-TO8*KEqx3~B=cAU08h=$?hA8wx|Gj`qYlH3G{%jFZI z?`$07;oun)T8YJ%X?nhNQu;pj5*oIPwx`^ATkKvbUhx9$MYOn!(z+@U#h6iqA-VCi zFg9Uqk)EKP+S=`{jc%ws3c|{=WW6Z8HJTl0kyd9+IH&gNZVK(`bFmkwK)GT}%_pa(WG??B;1SQZ1# z$j_MJcgY#7$zwS7^k0oidRNGT?>=iDd7a$7V(7P(tiH3nIQ;vMYefFzny-Vu?0u56 z;hFO1=mkpWt2Hyrw_BBBS0!kt3Py*2=OG%oQoRf7xsVE!*t1hj7OqV34gdr|i_-AE z#m(#+Sh6#Se1ScsFf#Q_y8hhipEhvu(mRDNCGHvB|LYxz8E3XRR^bFv&AeHy=IyG9 z(NOi;YHvl#q(N5$94!OM@Gu2?xj~?ku;#A*N`rEQ-Xsy4z?iZa;!1T@F=*oFf+1AB zkS1zUJ-c&DI=5veeUdIeu?VJU*rlNa3J90vbO$W!@2{IlJ4&KrL8c#Wq0N3w)L{Lb zrXAaN#JxOG|n!NG#VvimWr?%B2(m5eTV%OWhjeyC@g65QA|*Z$!v%zfN;tAaA9uU z_IxffZULV`dQlX}1^Dz@2f1ACt^6LxBra%|X;fm;J~>=!0mh8K)5fA%%Na~nax(7h zwd0*xHs2mJ_NqFTctlg5aXM(8(3sIqd_DWZDe~_)# zVLDb}VK|>8$t|bgSS2Gc0#eF&9{L{j01Rxkfe0C#H(qiTr?4o(0~*D<&%3|BXW$Ek z7`hQBG2>szPb-wm6NDPN{q19k3HGwTtrdB|-@Q4#=;wQ5cPIHT+Hk&wYeJ0iO^y13 zL=$S-a_>}m1`a9bQRNnv47X0i#BPrxd|F&&zEsVNt~~65fNx(LkZ(Kxn1{4KSPF{^ zTG_WG&L521feRxH&v9@7p_tP`Zk3u=ac$F!OQlZGYYM&U_xfYOH;4q9)_H6wZCF+Y zc@+R!TN3i^+?*ro-VZ?9^+!j#L-C4Ny5-RI0mpeXQ%1(N$O=yQC>yLzn4rxt_TTauoU-AY2O#P$_x^zQsRBHO-K_O z*rzEO5$Knsnxu{;N`P1`w~8iOnKp{~;n-}hJ5Zi`h_T-EZ@g?{2qz+W^IOx-FUXl! zSjxkfH>vxR2^{ZGH*a=-izcxvoH``1xqr+9OC@_91o`lt(s)jZvyNV9)G4~t@R=KO zSEIV=7@gbh!~gnc=Vt%X4E}5kWCU8te-E0V+FFs3JJWilOLyxZmp@#eXc(u(&{Vlm z8DNO}*ZrpMUL3;4PSbbCWrz>&mQ_wUe+8~2ILqemUlM@wskmh=DKnVz&Wz_}expR!?JBj2cn;y408RTkAZtp9ALaKz1i|phH|+ZH^Fh zyIR)V?NNeu$qp4EL~T&RV8InBX^`n9B@kH_e^`z1q`)m#6ckOvqr=vCBGVISb4Y>I zp*DR$ZLgLHTevCJcb zP!7wunF8-XLu>L}AnE{zHY}C0^JdK7U~zIbc$>*a-k8OmgMqH_BfTgmuLk?fr@0Ic zJ=DRlZy3xHp-_Le8Nb2*aPePA&_DbXt70PExo(goc5 z)PCD56H?tRHrR|k(bu2pEG%v_1wWg9$oq9IDOXO{cBP}X=Xe<-r7%>R$^dvS&yGUN zP@u_z9#@u>fOkrVgUIlU9x$xP!SX7F%!x0kOuM(><`vjt88vyzV{L6<)x+IsOF8I6 zWnSa&HFcisVE~n+@#f3ji~nzUS@T11jEt2B5;xo|;~l@=(H+tKTz=T%_A4jpCi=Ia z>A867@!)q!t!4%dyD*Lupb{gCzYU5y%|&GJKzr9(xw z>!X<(hL1k(~!Y6XjT)`^aLb|0CL}cMgZgugz3dA-mcoDuc%?>$5=vZ)P`SjZlOL<2-A|$rQ zkJbkwsl=#+#ArdM452VcmnjUeer=vYLPx))yD$p4y2;rvc9WLhc2T8E`&^enFq5F# zIxODU)L-@yoT`QO=R>F@O2Jh&)Zol@0`{2t2(hY&;=m80=oN|F{wI*7Mg0@VdVX9u zeV?plrT&liiRVSFDo-b}MI`+LupQTPUXV4}J92W|;0i2c;}@Ur)hb$7YXCY_yaD~k z=?3lA`L^I5Jv+xPp@X3bB)j=W6O4@hiskrMR7D_9U?V6t5ZfPf0wMbpa_u)y+u1BY zRa{Ios*BHFxz?~U5HWE3Sl|3^b2pBR+P5a6-4O=)`^~`T#lnx1cW~pjp`X}W9=e&ZjcaxsKV62q>`Y|e6@u5xDKfVM1$8yzm5QCvQh6w!?NhIpr629h z41u?gt%C`+hw=MYj^q#ZE?=pVcEq#EG6&m6^a34Y9{93`@IPm!ApsvO>q)=VlkQ%K zz~2wr;5VxX6cQCf+p6$C)Wk8|77hm!k3TU1{5ftizx6j=9Ch%TLK9O(9T(7W+PFJ! zoPa|K%*7jn(p`6xzi9$MH)wrgo*<^T1j7iUV;!aGT#8GfW|f7?05M#oq>&vb>`={G z2Vm+G`wU|%ZBk=Cm~|t`BiJIm1qreL3dX|#4F^?}yB+(lDNMp*C;&I9^KiXb@DJ}& zP&cY+=UZEggAVR7p*&Z?kx{K2bkc2Z>!%&mYSjL?sN^LVPkR&XocGx>?{>Rzhzc8# zco|{JXO4S!Jc-C~_8%R9t6S%%0P!N@#(w~~dd187aC<@}>FEOvo4+as=WdQVesiwl zxB3|IL-pGLWCzdht*0U*Pwqm=0Uj0N1Tc?UP*M|j&k+ElBiVf2;n6Fuc?pp5td?Hz zqM-6-(c0gdR19~a`P8`_X8})J^x}`s zQM|j%V4!XR>6Vj4^>3+1s91}?8!v-D<>$=e9wtZ<`GO15GS4ah!X7h@HU8o~M^YYe z`_VNnVl55!_F3{7rncR~beiVFCa%J3jnAEp^x|tcnBK6x+fBfq!!xsIpXckaU6G<6xLQ&IH+Na^##~pma_MYFt(wh# zF&+Y#cX$HK>^~+%iS%*{xCY+@4goa{IunV{XWhuUO9~R4aqXfAk0MRJl22G9i5NVH zUr^wvmPHnLc=xa7P(a@F8GbYYAq+dgK39Y#N`ScJ_uTgktNU}4Ndb8kB*Pb{$0UcQ zsUg~OBL%^UNPceJp?HXtIPIL?kX2#w!j$l7X?`le2sMotr99ow=tHiQgHAGE8d|uj z3NxL%%0cCl&{)+xFBL#Fq9`W7Gj5s9hdk}72dk|r{$lWMBI@3G*cM-C&uYkXE_(TF zsi5rX-bu22B2NU5{9tl?8K)()P1OGifX8!z+|(9-`|#E5q*X)72a${Y4Rm0{t8eO< zp*VY@G1XmCy~!b{gW-*~Zmo{0VK_DO8+%q!OC7&`wfg1qSb`04d}&bMv&YZWV=*(U z@T&nWkz@dqay;ICdc>gcxj&l_tEjm@1@2o5{_6MoPX)-ku5mXf95s9kH4|I?H|`-> z+RA?z#Vwb-yx_gWWthgK8y13tPM17MAl_i$lN!7#AN#cLC?Zm0FMio-|Io7zM(~vU zegS}iB^L%=dx9+gWb>dJE#x1z^$Op4ilE7D14fV%fztls7hAbd1KYSd4*X%M%<&q1 zj%nV^@p)0CTfzN{4ve7TP+txy@YT49=gGxgFH|uHzi{@w+)?daZKV%F&)|h+Y#zB7 zEZ3UF-y7BUiSqXbE)8R7isPgJ4iXnKD;*D!MD{ROpm|Wqf#Dmxo(LoWAfzhLekS8Y zMph5;XPS%&?)oSOigcTW?pgM$wtF1}M+HDb$V9gSP6S$y(Eda5pSxQ=-RAPW+Jt1} zN}j!Fz^2%KK3#93c{rUXbwP4?D;h&!NLYw7UUq#H%YHkLH#oe;I9oN_#|)Z7k#~%w zYRsZc*f=&U68BWN%bI4+8)ce6mq0r*MB`qZ)S%Vv1X;Iy8FV^(^4+NM=QL~3s&kxa z`?dat?AL`8uO}CXv>Ko1?W2!ix4`Z?^l|-P>==!UqJh_v{}Br^xzS`{D;!QYYs+$4 zCA}d_P5M=saOHu-#LqRBnyM21bd?8yC_K1G1lpjl*}YrLL%p%B6*Y^jT10evU7~q> zSeC_i0A9WFlPM zchAT#$JEq6t>p&F6F}QN_d0M310%MTR^u($%Py0HMfk+b(tQ~v)Oq!8B|#9F>KYsv zQVa)x{qm(4R^+!J5{la~nJ2Y8Tdaz6^-zlKV&~I<3-Ia9%)>3*|5U|nWGE2{#&%#Y zQSM_}A?h0o$+K~VNyPG4Efd)<|FkCKR|{#fpAlxYY6z3RwOQ#(Pe#%-TqhHQ( zQ-3A)72xcIe7E;Dasr@xw`+ui>xyd;B#+!*s+_~N>n6^OSYk&T7FH7&mAXf_7Vn(5 za;Lhy)^6^Q)nf}w&XEMRKd`xx%UEHM2N|KY7G*f@c}5x6MPjBXF|jJKy&=t>SlY9n zOvdXROOV^3G*2O;%gCquL7-PAo$sT8a&E~z(y+ut7nVDblOauf_K<%Aw@3%dPCU3p zthCSCPZ@mwCA^!KT|9_dnolUCAc$HxU8;g8Z9wf7*&>{?a`+SYBI3M_nyUiof-W>z z8p5WFfA6&o?K12jVx4LuW20^)FYybJXh1dGjWP-%;9&_0&rALfNCLk1h_P3D75#Cx zD3VW3#A18`E^_VaM31KsOp`USzK|h!32KL!9>)^@3x3r4NJbAGvh5k=b3?_*h005P zjm16x)Bg33qA&qJx0J=p0$N0L4jRZnW}+($p%mrI1!A{<0CD#n1icEDn&y2Ht9va} zIRJZUiSPFH37z+BxeYD76;nvpQzJGnbGHeLUtb?6?(PaFUpT0Q-Vk&jHGU>Pl|IX{WOs-$t zxPA@_>Grbl%waZwc|GC@26fBpOkQ`~?6qO3&6qYCd}=hPM3_qfl36-%WQEMGJ;bdd zcfh^2x1n8#4cpT)4JWnVg5d#h^n`(g{tGAFjqkVZqKOWlpB$t7mX(dBG(;t;``m!0#MjB_a=A3NM|(VIVAzZVRpppJ;nK?2;L zgl;?I%p1wWP!A3i&t)fyc-}1l-0&X_y~u8H_G;`|k$o$=sJ}9J3ITSl;pe|=Zh~Buzu?Scq=dJ1IX>lSKZ_7kBNQ1mUR z61!a%o!>rUrwrwBvOWB(o5FNor*G?}qt=IciUfFSGG~)oHX=d;eo>>5HSWv~$wKyaOtPcR%bXW_qd)0ck{lH1oW~3j-pfoz z1|xO6vv?NV&w|gdAkFe$H`(K#s#F^-d}=k^JUYT0-N75(;f>1-nH@PzR(jBc`_cL& zV?7Jj1t#;EQ8HzLgyWHCTC0~QdaKDiE&Fc_eh3j&@tqn0n{6O*q`Kymqc3n(EVnqt zhfdq`If^FF^>Zu(WNRCWGCtB|pYIk3w2IBD8CDAR#d4%uhI^aOo|$2up5i`IO98Lr zX?E)|I-l+CDR1PI&!s*;!nj;O$UniOh`7g+T?0)WbMv zIG^@EQM&Ob=*iK1te8&dlRL!DOLm5qnDswUOA|I5K$;0g@Ww&j0evJqZKO^}7e!;Urr?zkMc1{A4N2pcYQnC9Y zsJ92p^p7*$5=vAAqp3lfpY6Le+wbdYTiQNuQa_&vo^*9eTT+y1cRGtav2ITt$_wuV ze!}v{FHx2LVqB|X`e@VGx3shb2xZFaAxRG0GAv>dBHU#_01CDiU<2Q~X3!yO>Xj3I zAGMh7V0H;EFxrDQ*}v^IQO7wwa55&HApV03Tmze(h`*`BnUYRYY%qZ%u(-HbSVBT= zi!nj8+7vtW=IsFt2tSDPY2{JbLf3Oo`)OR zA#&Wr_6QA#+{(SSB7m{ML77(Q#nDe!4Oco?9m^3HsIKB*eocUaMG`Ukmku{AQ{(UHgcgWF zN}o$~n3N$62xFGI7p0?tr2Fq{r;Vo?S^nUm1n0phK<5HR2dYk8H^S1h_X}fVX}*AA z7NI)^MV>vY(^H&zSz!dIQHt!jgc791PGemG(h(f2{AIupJreH5Q~x>X6T0q=+-Lgj zrC%`g1X)>yK3X^Il8t-Cw&8)Yo7u!qKOd8hFXW9V4iGQo7qAb-lLgU-tSm5X%rr|l z$6gU$&()~MPFxj@Fe%Yowc+ef%qt^cSS1h#%C6 zm@Erb8EiH?zGEq07i8c_OwldD3b7fY(-3)*_x&EdCI1J-f1;010@iQ10>m?5i!NzFrT4P@xZDC7Ee%M&^7`nZ0$A_CNasT_Te4nz8;Odqf{57N^jLpKRWra2}#vH7g8j&Pz z#0odU3%OZa>s|FADp8)x6zg`D)^72X@M`;gR@z(U{Oe*+G`=pu^QIDIm+vY1B!)zQ zjglS&f^1jYFJrMKp^4l7U!F{YlqXd~slO;EJFSX{5e+ki}16i## z*|)#x!G&~3g?{8rEAay)Fps#muMOb;9%!U`(9E0etwr%M%&o;e83>))OE-vxzgX9gD`hsFN@K%A0>&p^&dup-epD)5EP) zOhait`IYi}wDr{x`h8y+=oWq*+IraoZLE;Z_Z*-JNJ*F)Yp!nMGHaATxTKmI)B8Jl zXR64gC~bgocu#Ta0POGapkt|Unba=)bH7p{Jc2p!cp4p0mQ}n}Bv134*LS8X%YeVv zAcf>bo0vmwhq!2j*t)-toZdYq?sZ9tNqJ$XUxZ#JASkM@47o?_#5w^%zO)?Pz(uU34@yLSO<%!Jf82iSNC+>vA(Vphd917< zL53UjS9-$ML%1_^0Zq&C6||TYaygemFx*-}tMd z?;jm;ye^-!iTgcifDN!Qh@@eOri-&2WAGr)?^Vk}YbZKPGRLY+?w;=Wb9Fk?locW_ zf^y;qe7v(Qd7>XK!pOr9r0jK4paZOXivhW)?0i*@gdP(O&DkiK2lZXYqXD&UKxRY5NpOK$0v&SB)%clDiYH zDX+v`D6oBlP3!*xmmm`?2;0z%0kP}8$D}{9lUA^SM`6;_5@|n~F(P>(O#P2;HI$ff zkzP<~#9;bcr6egG3*&vnMyzw$i=XoF^g#b4OTk)|%<`U!n+aj_dqHG{%v2+q{;LK0 zTv5CVY~1<8(Zj%;?v!WD0^WM+J3O{U`76UEPY9fQ$d~|Nz-MJOpFd_BF7;$ zN`loYwY~lAL$Gh6o-^$x#;0UFfQ5)#{aPNULXj;xljZHtKyvzITwW!-Gv$}TuO$s{ zKFPgJ#^X&S`$kFyy~ti~Yh`&SPf0ghsQr~q_mNyLFYg;k8&{qyJsz^CyW8F#wH6DZ z1Tg`Ql0gq+Ykp}Ad}{U|vf<_Q=V%p*`S9zbb@=oKe1d~;q5A#D^%uwx-{VFMlCQ@L zKbfnSCy#Ef>e=RoZ;5*VtP;ilVT!8Ez|7dzaP>8*riVyD*x>a=CM^DJr<0z7%3WC4 zq1J|j26-051(B$+!F1n6k$l)@b1ukx6G*aP`Ol!jN(v^Pjh4y1}HaVv##4kHHPk?wvxH}Y=;_mKNym*VdJH@>?#kIJ*yFcmgKleNHe#wVSW^&CXyJvUL*~K1g(_xwi z0RZAiarzbNNH|pB5dS~R31BG4QC5{FTYmP`TgStNor}Nl;@k#%;>SB6(0LEot$8Pm z-nK{8o~Qsw<$^uqS(jgDuF|INp&+M*oox%u=%*==trfj`@UEV4ml6$Y!~PWyG~R|8 zXH1Es)P0si=rh&2Eo_EaepN{&C(E^DkhY>o58~zx;O9qBXEZP_LYG>_MBNQSZ#+kz z@&Ijtqu|TYs%%gu%fWvUa&<+V(SBPZ)o25#{C(7EQ)|V(j933S$xCGhyW!dM@tNZ} z;neYn>58750Hg)=Ps`|bylXV`vn*m1JMJH9v?~~v4HGIa#`1R_oUrNT1p0Z?I7ggPA3|Z6!t}rdMcQ%%rwHP{9q$!#Ke=R zUG(jIPVvrP%8^|)nkhumBrq8}iRnADD2pPK@~qD}3U&!^yHm|n`w`&00w5(q3J{d` z2zjE)s=rOJ6`XFBiv%jFdE4BWmKyxKF5ZNLi{W)})&h|^l zkt6@yJ6b5AWf##R+ez4N2bG zV>e>jgI{g_IAGS<{Ec|tEN{tO*9k6IzA&g40m>u~wu9zA^L&ElewTK0>n8&8!92Dj zY!FyUbKUhrJy?P7BN`bD1PSLG2KU~A`X5hhmRwNB{J8X11^)%_l%yU@Xrl7<>F9ENDgjuf^_J@lLP7u<7G_^Uq{ zG#zb-F13NR=#=W!pGt&5ij7jhojCzCqp*hW=km}&LQ3Y6c@)ILzZka<2)7TAwk?q+ zIlJAV-AO16lSDPrvuWw~OG8s>bbNvn?P=#uqVZrFpm^h`zBScxHY<~XG*GuB!Is|3hIO*8HHGJ0IGy zm4PccL?QH7H#o)rII~NR?Ne!rA+oZpA&Htswko4^MX%sU6FHW_nOuy^cN*!eXt7V| zstNoAT#Gw}olpUFQD$3HG527M`JjK zq_H9r29f?mAi+}ju$SUN=`B#q4ps6nqqxdYv8%BCa}pYfBnn}BcBrW@l#?##ZR_4-mJca~uoiYS)qq4D?v5HMSHrQIiI4L%QB(Eji+vhL8Z4CWEnX6|pf()||aYHCi@U^DV`QY)yUV16^y3hQ*m&unD&$t-WhJ@< zuf7K&>YW6Eq=Fi5>Dg)Cf{=KFrIN5npRq{S(*(8fbH0_F@2IDulV(Y}iEN_S22TE6 z09X-gPyt+Mf_o^i!EzsSH)>|k`%6+jyvvhT?2u$V>BL2cP8Xt;oxL`e-_%BYTvb!k zO8bMTaY{H1-1+IpBb#(T!QR9Vy&^#u`60cx47yEx(-03WL%n3F$KuVdM$E|xF8@yY z>6|H>xcPWGm@ZL+52kGDyQ{E3?RO%=N&D>NiHS6A(xfoJ^ZC!rLo*Aj^*pMFVLoWP z<9+_B#gS~!>5x#>OMVcUaJwpcJd+sq_h)Ri1sRIX)a#HPDWnJ{Pmzh#z|mN8)fW^P z&djA{_m(r{hjD&=QaaP3iPvQnuVE%g?v{boWUIfM$*VUhO z#WQ4&COHu>vg+?&yRp|+gt~_g=v1*RkSdIZM#L~>9RjW}DJ4}TKQLS2*?UiI>^H%J zFRtxFsyYPvW1rA?@#Vs2Thwj3#zkk1v_Q*E+FR{zc=tC?&{s#hT8xT>)$)UkpSL$f zpL{b6(Tt{EOldG*Va1F}J42tCSN$AhLJ#w|aH5PjJJ@ze@Mfljezo-^_=n200Q!0QyMJV|<9khb@&y z(OrC1qj#&+X;hRv_nj8rB*Gs6*%m+8nND}Q);=LgrL|K(9dr;(R8jFI0+VGMRrY!OzPrTNNXt<*y&jD%GxKhEbz zp=rvEaLF$H&Ah%+(VP^|%D91@ixf>6+|S2eh%!;^qL_=(X5lIoB|uBdaBLUkGPwpjk_MNlqH4hllYRuLB5p1@ZUO;mrMVr42gol*j7`}EhsB-yNZ z55xchy{!Yabf+)M;rVJp5Tr+BH#RzSWscgnR}&PNddkE3Px*8Xl*s1R%G?N?U(~V4 z`)O4d8bwRDL#m7E7>1Ggu%0Wmb_6Wm`0(kbzE~*{XS}Zdqzl_xCV(RzAZX$2Z$Wyp zs=&#q?(!mc%nR&)D@S1yysDL@8c}tr%9kVqhA1ES0GG$115I~Q-JnfOLQWzgyInf< z%@!27nU83?>x=1*6FKl4zCiWG%98BAWP)SAnE?HPhr~zV5IOh^Dp!0+70?W^FB1|W z_Txp_aU9{0YQG)KYo#Pf921M0iT=V$;h0U`2AU~iEjp4sPBt$H*e_1_Eb@g?Y}-F^ zN=jL>+p>{UsN|_%igFOxwqI5EFS7%^(omuol=wL$3WKR^;4!!Pv`bsg>h8?~RdkJ* zhP@QYq^CESe}OyW->swciP^A&{+5+XPJ7eZ;=(SAJhzT4tF5!ina7+s$ZL&k6C>+v z%j94}3-*jZQQch~!~afL38b?$eZRdW;C(w3tw{TX(2s#3f6@8Y_{1#;ZLoi|;XHB(|MW) zll?BNM3g~A>M&xmOE5?+(6aB193qCB5jI;9gHzRTFr1|cWvMtjGLMQuRAf5I{|kIN|QMq;7;F=?1a*>-w#(aHm*&hr{;G8BqOlrXm~Tr~yq{@&>k zqv6;Bs#=*=CDXs?@GJGx!BBhLal6}W;w}SjNeN#E92o9ze?wfN9 zLL89i4op%j)KWi+YiU+_GQ(dNx$lb}n1=rI2+)GiCLqW*of^{y8f3foRjIS|Zw*a< z7)wSFMRv~UTht4dAwCrq(}(0@ip=o_(kdf7q<`UZ zQ`E2%cX{sg^YACnDu;3Z$D5q)MK5FGpQB}@a5|O)_Muq`NTVH};JM#r=<0N8=RhU) zE9oB`*Il?=1O*Sy-8;Lx9fAs3C!{wg6L4eXdAXtTK{-BZmD+t+LeXpn$gL~1Ww5>D zRF8HTH6rQj!P;#ee!#$&M!Y7UtJ(L(jt6*vMV@t8e;#TCZeh7DA7~wNdHb%S?J-UG zg4IAMg_N?#KLJ+^)qdrf1VSxEd`Nm~$57>MbI915s?ar$uTyEYC-=aBc8<2*&pcl_Ig z02rLDi_t?};YEu$-?w3&ix`2asPy(zV?J3sM;#Wd3yN;8DUKbhzIu5-s!h)Ry5*4D zCS|87+`NTeRv_xp6M9el58a9d{aarUcSi-~s%QdC=t&)Q1`d7oOywcn+VgOs zm(<>0AP%3FltsTT5veyM%wP_UgRt6Q-FMu4$wjFe=LR0|ZdUpvnM#O!VaOyDGuUtT zK1XDf>cMq*$a|)NAdgK8%|?h+-wf6pA&!6 zPHIsiQpPdiYTGE=N>N!99l}0)U`Yk0+Wqao0Z;~Re#e4?_^8mq_eNzFB+{rU2+ z{`rn7eijs1_A>M`wV(X_y=a_>f1x#1)4(i$H}tYPggbfl`$u9ZLD!g71H>;}d|4s0 zK6gXp)p}zkgUP*T7!{-p2peF0y-`rOm~9*=9$p}0Hf5hBZLSD^dj}|{k7y6+Z*}{6 zzx1}jd+S;@+14@U;J&<};3xR|4nqOjLqHsp(VxuHI4pSZBLdi2Q)f}leXoK@ch7!} zFFl=rBuf)ImhmnE_0Ht0=7m^IQ`1 z3PfG}wjfF__Aw+}A}eT8H*`u2HLf1h1w#=L29s_gL5q=?S_)-nYczIpfxF!Wle(yD z`crt&dr9MfT44PlDLeByFSBAWW}hW+m^U7i%-`qDwm6 zvBTz3%s;f2n@2f#7sv0)P@ia?+X+k24YA9QSO{Men4(wgPfDB^#Yy2c+%=8Js6~dr zPR|wb6yhFvUx3&+=0uisVoIpxkV{0z-h&jB#UXY12~s zerU?c0~HHyw0B+@umP=V(JPYfqY{JUSnU36Jj7|E(Kc9)CaPcv$OHo@;*sMqrJSRr z%VHf$p2~>-9Sc6Y5`eVhiIk~K%UzXl;Eexa96JZ!N#%f2ngUk}#x@Ua17iOR zv_CaGoytFmkAsf2`rr5^)_5=qfVO&BP+>ZXPN!a;1+Q~|t_4Yqytd{M zg(-~WkN(b{y?%Fm*r6qy&oxvwAJv=n)YQJ;Za_rPzd{K?ZI@XPNB2GfMm4n$LG$*g zp}=l}oVeJqpM-WJ0}H9#B3)?TEUcTIQCZk=cQawNt)Q)e*f)7LzI!p+uV-}buHbsC zA|TYeKiYn@05DOo`)YKhs9gIxN$hn=iN((GbS(#erLzfP-V1ek^v8a2d$g>~WhUvP1p)pY zY^#z#C9A~TbE*WH8;}Ko&Zh%cCjF%kNHBY1M7VGELy(c70Lgy#{(N+JLi#r=T}Z8Q zBl?wtIu2Z{|8@u%_T(jwWCE{0>0+VemAf=2{)!SCj`@3$$#6LiQJ#t$kQ%?a+peke zGOp)F43|;_x>u$IacBEVw4;;UuO`nV_>^btOJwoz0LlkEZYn!9nvl}z2(V|B> zMx}#tevPEKqs5%XtQXF;7<`H^WuVEwqQd{h#f6goOZhxJePzPvlGx$!*$q86^dELV zhO_`HPc4_5)N^QN=-V;;2Zk)d)Ql%xavXF)!qNd}zTEvOcQN+fmM|2G<`K1t#2=7! zXQb4X4OlgrILa>O{tybb@j>wkez6gC-w_k_?_Pqi-Yq;Ke*V5iw*6N8$0C=H4r_^H zydx@RfSBHL3Vg;&Sv+u10O&prnJrdEo)9G-C9@Ds}q*cy;e+6i5+`VfYc# zkd~>@o=LWMfv{XA9Q~**X#F6-KLsh$yI^-EQKXoad>xfTd=-pGrBL^DE{WIw-YxYb8Dun_lbLIWo5DGGBQ#rs zqr>Qs%}KX?oA_l))F5ax)q!g3%j?SeK@&1Dkh1_yIhn$2z=oYEke<&B(en)ODad$L z0PL~D1UDerAAVaBv;I{VXQ-Y-^=H}Yd7>JF%oz+dYynIjm>0G|TZ9A6c}dtSG8dDk zLG+8cvvhAVZh7zevXR->I4vzsOf$5ZA?(t+iO&JhSOk|BcJvDP;})T&Kpig5soZP* z^Vz{K(mH7?0*&B9YjWXh%ER<`ih7W^Hp$st5?OW8@_0Eh;g>`kwYEtAc$!4&zge&w z9C2L~fx-hk^C%h@%~T66srAPP&hHP>yw~>PA!#4{fC9y!B9FrFg>5>WcmvHku0*{*b|y5YX`WwSWuWM#LHwyT_A{?tb5Ah zKZf!?Y}Od)5wzSXo^Q8zb$L)0mCEN$_Wiwy85i>GG;owoC)g3hXgB%7j$*cg_DPBg zqHN-cm;N7G`Hy+}@59|R(7&Q|!u@HEvWSvz(NpjKi$fX?}Zi`2E4O~_XTzuKy@WhdAg@`Y=!yG!$eZjj3io&V7x z;%%!_2r5KTTOP>ja1ur6Ihfq~$iJ%JPbZyC_W|0<3t8}Smh4cvU@PzDh@z~YeA5G8 zWEF`;-B3sz6LURX24zQWf7uv3e_Rw2w7iUy;>#tDKH=VUjg=zx7dYy)p7HY*TdE7z z-IIKNd;CwVM;J`N{X^>I^Y(AyRi3y6f^hBh~ku<=$Vtao}k2?4R$s?GP7#ALMR zMhq}U3`Gk%0Nb&{UpWmTS^lkpz`g@PGV;Xf<6C<;?xOPjD*G&M^(?kV*?f#Jn+a$2!J&*#*V zeytFx)6Ny(4~po|o#W+hGWj;*1ZfMqCMzw?vAUF;h^Pn0r9t9BCT9WD8y%fdN23d@ zbxeaZ_rPx>pzXThD^NPNIWNp{(qTcNCSpLae+pn~1b7wtO=;V%hbxBqgF;`hQS zgbG?^TrSupollu=V{yKGYQ-{hB3-6+;Zex5JG~zLeAsRHabp;xKjGoRE!OyCz>W&3 zit_+2i$bPsXWM%h6st5Bf%>`pvA|b5A{PkKS5zP~?hcp#&8pYGqNgGq#-0nMLb3E} zwbeVD#!cLN{L~`Ocv3-KF4Z|7pjfZRnPEB_!oe7Viax$cDh>IIcUPBtS|xL0uk#5c z5KIP#ASs3xy#x(m=FSk2zPEF=e5SYnyRfOrrZ3cvOqkhG=h#Mv zBw7Ch)jMz`2|^eDQEqTl(lJ6n{jC`eH1$xqQ^eh>-g?lTt3BV3Q@R^VxW*zgQnFX~ z&_c9Yjyv-7^$U^61QnFMfN&MWE@>OC*IO|NLD-jhEAQ(v-Q!W*%40lQ@;JLWxRnj1 zNOH2w92-WmldAKrS7fOCKc$q}^uVU-d@_{Z-VFk%nXRD*Z?sM+$YJv}xl2r5* z{oCT3p3tfkRaY~P3VKT{7JPFXCbb54iHML>6^yo-VE?lFkIN>TbnkL*!4M%n01=8N zMhSAbD8eGeS1M`GmvkDMv>}Fo*0xu#pQDO?f(S!IAK=sRhhSzrR?bw)Uo#dd1D%-y za@v%C!kMt+4bfTfXo{;f%t#5h+#a|ojp)nF2F(dPgD4hR&EAwkT;dRw%v+dJJ6q5* zT&mFxFCOX)6VKw2OBEHRC3>}zoUfY2)ali|?w^NLOWA@c=5<`0MSi>e8%ypTuJU`KgC8waeh_7{WvK>eWwQc3ra7C_nQ4lJjlfn&*FP z7UEiTi6d1Y9Y~D%c?z8#Bz88#!_s$jyUdLRRB6)#!tVEb=OX==AcuY&xfPz3wcO$1 zt~R%K{VRs@H6H3a%MOxF@XvM51+h1Dy@VA(2io&Pr671^bD!bFv+1(*(P{nh02A15 zYm41}FXMLYIRov8&7BXYz_)8V1^bp`1E2k-Vp=zRd-@Lr{&9d|IAx^KuaDHEKQ(q2 zY2G9K!U96^E6jD}(Nt}Tkq~0%K$orFLnhn>k4RUvPqXY~;f3`jvYMLL;b8rj(U+HArZ8kJf2n%JWGDDA=i_}IL3Wgef`^)&5RbWiBrgVbBz-j?{L z_c*^>w`Pr&(=he5RyP1}Y5>SFnw@dsHH zD!J!%B>q?*hTCS?lY`!gr@19zai^a5-Q9h8n}8$MFMDYbS=JnzIf)*I)wVTTH5*R( zvdg7uE=jedB7#yYf?cXN$XY};H23MExA9Q&!y9#5@2aDFge%7Uj9s=nJ2B)6Sw&;) z*+lekrS1Z_*T%dHcpbb+5;o;Q^R{!tXB)L^%n1Oqc>XrO>$urIrKXAM?78Zt|KbY} zyKF-(ct-7T$Q}mg%RoCPSDpI2mlMna0V6m;Ha`ek0W(4M2B?3~h}6bA46}$i@KEI! zlSRuOLL(J1_Au87Jh7ZW6!_p;^okRwIXMe3xE>8t6huKyhiRKJe?X~rJz?yOKMFeAg5gzN?pDa5Ph$+0Fb3@IrIfR6sOuyU4%zqh%3@U9aHrX~>L z@^kX*r>(yYyku)%dNX3RHGVzlcOGx<9C5m$d%0iz3UcKVF=GCDk(f2Sf1|S8KHDSo z_7#Pz@#mF*cRvAADK_ep-ctvrKHk;{bWDOIx&HobpNIbbSf8!_GG{+nZW^j2`<5%B z^?bP<=*`0wn1yec4(&p}?sKuitfIAj7jow)80;t?T$}3nJw98<&9qmf*?WggJwrWJ zRlbw-!~ya0lyOE0pRPu@0zL7ao|nU%kBGp;S4gIZ$Z`glLCquI3O-yNl#NK4GS)Wy zDI@ae*OXVI;+?Nh2+`1I7Rl3tl?3wD_xNEA&OF9IZ&`or->6KfZfSCo_+n zAqxJ=t)TkHZR`6_d^GqxCxZt__ddVvw`LP_Ot4e6J`e_iG!Yq~{bvXGry%V%Y4fD!In$##>BhF+;?Z+aIZaSze6IOj!DDT*3Q;%jJrg;vq(WUs)I!4bWeR3ufsAZDRDRwhwFUoYuS_H z@ANkD#i@UI zV>rT=rseK5KN1s%Gv`C4P0)-~B!*DoKPl%oPnetL24piZJh`0Cx08iO6R@J|EVL;@ zUmL|#5A=7VV20u9)wajmXc=vfh``93irQ};YvXL027=$2jScp(s?Zn#4!JftYo@C^ z2@PdNQ(HMorS9JfG&8@&eI5)_hcUyJT?XSAc=^0CHv(mqBA)9=}2LTIN{YezukE&%J|0qcpGgA4$$w+%(f zyt-DqH{pri-P?~aU_JBxZU;}xi5FmsxQXNZ=rRdb}46l#(VEtBM?Xyd8?^Mkj=`c__F<)Y!J3Ti;$wIWwVD(z6rv z?RA37UB*P*>_r;qXHjg~;`j-|76@muK&Qfc23+~pM4(v`%7eN=A|2?+R>)K)XSFn> zqc(Lva)0Oi(++UJ^nGtrggkwQPe&*xfU);cs^T*@NX000bx<97$XY_obUf8?I5cYN zu9m|1cim(9Uh;(vmEz{%tfj!*l3uL$!EgdxhzF(B%+(`9r~Y16&Xwogk|KL~a;}3g z)lWp^O>0`bHYUQ{XU=lVy2+M)aD9@#IBiHd9n}FThwlSL9puc*BkNtjpGUh{_bY|% zbk)v>21JC^=lsAX2VK+c=?@}LZAU|%MTp`{a?zu-9zVaF2_!^`?XZ~r#ZXIL`NCt8 z*6Lf+sYZyslSmbKsl%Om=j<@5mYKY%9vp`OKm$gi+rR~5iVki^H^4|)$Ny$JeXbvN zzT*~uYKrwWnpA*)5sTBL-d&opac)pb3nN63?ojT!FpSa=YOL{_>2+Whq5c)FLhBBo zL$gabT&<$!f35f;(zjhyzBU*-QU}b}3RmM?Y`+JnW!hHM8OzHRSNRpr5O=0v) zkf3#m=-(3{vtGS}b2?ax5&f@^^CmlrO*R7YK_obaF%fXOqSrrwq2X|}JC!X^HGB|& z#aea!rjs~+1#_RdYiig`moLI2?w2&^^Bvz?3ubgAA&itrBblzoOGm4;?dD~^AL&d@ zD(uQpZFWTJW=p^K?E#V}@^Du6o2AI-;9xi{3*z30!S93K=8FQs0|D;T1e4ZN$Y&|M zF6}9{+B}O6$~u~g_+xFcs5QS4XzHTYQEX*W6x71?-S2g{HTo%Zn3wn0??|qV4BI3I z;__i?!vpfzF0?Uv*JQDO3=n?w?yg@(e|_@D*t+1W{8OL3{zuP6)ab`+9KSOlNvHzA0d#~Q8e)y$P!5!+N&Ckk`6ad1#(dX@^1ek9Z zO)l?gPhv8@+iRUp?#+7t{7&t?lV{(@%(yf>%?4MiRG#B9cFbzHI%E(i)6F_ic|4Ag>bw#1$Mw-AFykG#Euj2yWI4o4W~OfcSYP zeN({v9D%V!hn5W|hpkT4)?JovZ$tDhQf{yHFWqJxhxAQ5{mx!4Arf%ILx--~+((>= zdw-B_E*>5K@*(|phB|~Cn(-jBlgQxF z{QA=MD7XguI4_gT>;V6N_|v54tGL+2!3X!-OM;;{tQkw9gC?;CWt_XI-?>gWTldAW zdeAqW?f_=AoIKrQ4Gg^fexPRKN?ob-@oWO(LfroKeOE&?!s&{ZXdM>#2Ib>|0i9c5 zwncS^c2*Tf%bv^H0oDEGPd9TnmFvgAJ?5qT+gg6Oq?>dbmD#>sGotiO%=KFdM(;;+ zT(@?UagBp*;Ur159gEXW^%y%L?C*t?yFMb$?ik&zI%9XVnAcRBlPCkQvzz zJk@qcG;R|rl{lkR8-n~S!DkEVU-s=X0s1}|vuCY;>UlgqokZ$&6syvlrMB={yCJyCM%~##N*K&E?O5P-7tC&XOBARYK=RmAI@{wZN?fvz zqtlGWH!Nz7jeIVTA1^oWjejjFEGfGq<|;Zdg8@s^4Rl$YlD~fJE}P%rm|d*WWvXjD zy;wRae=#ogq`OX#LOb}wb?AIG#_qJY&)ZjZHQ7OB=FFL)nmm#&1M;u~z~O%87ZKid z2#`imnkUWe~#h?#SukgbgzS@6pg*533SN6+W!Z6=~z|OC9 z&9UR)a2S@VHBrB}cjt#36V{%|QwJk{cp@+LFVpx4h<8ARZDrq;vbxz992=+P+LXRI zC9FnmcZTtjEwKfQfrZcGv}!iVj;xBX~#O~C!xW6b$);mkO) zDamw$yz%*P72oNP=^4A78;M~Z?CPR)>hZix`6ct|Q9kNFKi>_gmQ=|-HBTq+wCy^G zGMUC#HGIS#HN3C@YueXSYqBh0LcuWGLvzGOv5brMx1tqgH29rkG0{U&ope|7k_OTC zuhlIi8yhR8{7tQa;0X|%kL8wsYZ#$!WGt%=B%<%_ewyCi= z(oQ>9O|K4o_En$NQR(PNrx+XYxNW|CX0Lz|IB;4k(i?X?nbv!&Jv_)yaN1kM=#PH5 z%QzFfCXpO0V7lMKBm&`)7}sCrZf(mz&9kiDA#In=#K$^o&|oj%fI-UEfW1f3xBxdt z@1yZ2>?9N$cEw0k^<>fI=7y+>Xitk?p0yEwe&EcQE&ht_w;5zWUbP>=))P5K%~fUO z*Y~M{&DT6`nd~k|Nb~cS3xA70i5Pm7#qe=`q1kEE8NF}`#LRr-w@E*_!y^7#!M`=^ zoP3mCP=2O1#_t$5C)|m_?+1T#XXkImyu23LJ(}pVdi2U}T7~^ZVLFBRFTqvL-($+d zH%cL^<&xY;f~q}-jJphc1+TL+FCp?;zcvK{pM9Rq{Kr>=p?;*aC$ueZQMm5FJDqpt z!2u3GmB=XmJt8I_r4nh1;3#!-P5=W3puB4Kd?=4Yr*n>=erS1r^uhpz;s?z1S*wdS z_zW%D@z2ZCVSgD$Vue1vF8PJ=9ty*UzC2+IJ^2KG{pOysy7s`CS}?& z=*b)Fy1gtph-$mLi}T+B;mBqqNXQ~VZ|bG*JvA(})qe%50wU_0UUrfwfrVJSNFLex z<5xIhE37z=M2UED93u83gfBl`2=WZ^nqveMo-$ULeD4onnDwC8YC^)YE&+ddhiHN* zWe=DGQzKlIVgQ}|sX$(}u@zPpBxi3hGx!p>h>!M_Hfp%7KI8haT8JO+^%bMI*LCgy z?p9)TAgNWuQ%hfmkomDg$hm#YlTW#tdfVFS%_9UM5T1HmMEIYtpZ+*$p%3@>q>|-1 zdFMsRa(xoRfj5m6Il8c0`Qz_lX*7k?iuK(F1bWZo!daiQTV?O7Ucru6U-FYJ9Bm8W z22Qlgmk%sCNq1sX-fF&uR{a z{`-Ko+jhnP;=ct9ZF|5@G3dxXaKM96IdXr96VL*4Q1sYQFC#} z#R1C08HXQ{MGPh^9V0lE8w+l3j~Ypzcgoz{A6lYa`2sR1n7xOFmrtq8IRMWack>tb z-N+eigFWavxImT{!TfndB91vU=mCjVq9bD#?EXCnYaI{KZ$v34-9~>8{TlBsP4kgL z0gqp@IxPbxyazKnRHUv_H&Exz2bvI$F3uzbv2FPy;U2mKoireDCLe*K4MP;_cE|8& zpTc~cy=d!|?{5!aJG?yo^~Oa-L=F~NFt>l06VTLi9yZmi{7#T4Gw0~-ISOVN?n<)7 zaDT-vT|+d7{QK)cHQhU!Ofc9<`V>hDx-XchPKaI5G_N{BVC5XL5{{vdDIs(u;>AS} zQJ`@5-^m6;TSbC$th$@r$x=2Y79LW+2S@xhK>-+WxN#%|3;&meYYRp>37L{CP5=na{wnTf+8CtUs!g zlCSBDw99|$LbS=V7BH$nHM;e?Ss{Df(O(m$4bf)*3CL>@#-S^31T1&fMd|z2s(I)K zGmLU>H3ePo5byVHF&J}2|BHS=&7~+=ItCdE(A3NIYh?3j=fCqP$#k-?qyU)bL9-?A zVoxiwwYVmbF+qur)S#$2mi`?g=u(Ifnd0B>8XMiODp3k>^v;}NMvJd%97!vtWfWs6 zy>Abw$dU zYP>n*)wYxMqce>2=RVeYgs92z9xVZ$_5Qzq9fOz18|>dsk%?{$s>gDvr16qp;EIdJ zv!`%CpXLz%JqA2OGoh3TVPTk!u_UOeMT76+jc2{t+>Cur`!15JlLFL0TNPwyL49|m zeY9#ECG*Y8^s_X)BwcudQ5*jdo>_yWu?6k#_Ak&--UsQ3o`Zn{E*Lh;=VJ{JODG?+ z`s!C~RmV~v^iJ$wE91*cmMn5O(q^wUPDn$oMb*Z9mUT8Bq1|$A^w6eltXgJG#(z*2 z3tEZ)pM@%!#{~SY`KmXWs|C~*RWIyFd5b%`)|Lb{s( z?H$d`5o|IMZ1PXoDb@2wU5pHQ)SrLLl5E9!M0ie%G{01A-2V9h6o20U=mhjC8kP{Q z_cu^+avc^+pc1mvAMGuVeV}xIt&MJM6*wlnzPNtCa&>JD7Y*tvUOe$jGqi+SVJ|2S za<(%yAXy)Rt)1B7lQ-~tBs^Rkx6S^@%KG1y!dk&vQD~2^bo@jBK#zO7R#9Hex_>PUYO4;FwU5^I=vn0-2INNOakKFyyD(&s0T+#%?os1VgFg@xU!CJ zDMpBVw&mn9Zr1-+olY41Jk(K+s~In{@blSDU7N!9X#~yN*%+x}2h*xzLsZlQId2Y` zz5-Jud(tv^|5h1#P(QSVfxI&1R)FZQ0>W0bVvIAzAw-?NwFq$CYv?W2>gh0iVK){P zU^!g@0F(NQC4G;Ok1Ja2SrsMfwPbtzq6Kth)aA)EocGO%;OeO>^mdEu1eyz!{nuMoTcW5;#A|2llG=K-}Nmzs@u7fX$CXPG_6q{0J8n5=g&|DAy;E5tuzocj|y z=D!=YSA#eB>fn%~D+XVnmTWNFWv+%<1s_-u&FlLzgrKgSAb?u040Rm!MAHH-ja-%s zi{%?tg9;yto6A%R{Ap&wlTn=uN$#F#D{a`%m-KCOXHgN4SijZPNvuK~tP!QcdlmDR zWG?2b+@KV~C-a%;5iXXkre!kWGQ!Q6S8FDAd0hgbV(HvOU82e9^sr{IN6J;nzn@A^(#Gd zp6`?}o9s~*y?PWeexF3rs0g->7nqm$L+~`Mus$Py`HALzYXWCQ&p|_@>2Px#mYc)v z6=A%N)1OA}%ipgs9$W3VOuYSVfo~rQ8-pBJk9=yETp|+Q&Yx_aH!rlixrIS@xWdR@!mq@x%W7;n|r#Eo6s0`&)6#oGaz3}vhZe>sM2N*y4ZP6%O=0p z5be)R$eARm0XJgmZ($Oww-`qGbLgU$gn1K3THbfpnB)2l4hyFgQjGQLAh>9-VyXp~ z@eZp095Uyej_9$(okn$H#;)Ppdx#h3?W5v=?!G+6RI!u6f1BIQ`8jpz1_KSaJo#yo z28w)Cgzf@lr&Waw*iTor`-@_^s;AgMpHQtUk(p*Dq!1P&wLg)#DL?O!Bf3B4qL>)Q z?gsFi_2zkv+;5##exkkO6QE)d;3!_)cq)PhXBuAScgC7lVKyIGo}28In)lj?Q1c0? zM&5td?q(*d*o^I5Vj@^tcmu&&lk}dRd@5q9{}+5Z-?s3~m&b%BJ0enG*ET7fKb`T~4QFIF#q;jQW zuB*3o*6s{i9pCSJ(;)yn^HS z7wyyYHT6oj`fu4z*K7@(1jH;exSS1eawYThKBgFvoVO?6#TfH@c|hkUEbY5un^)M+ zL^!zPyqD97y3=yeuZH@mzIJFz`*o2jSF!c{<029oo7ZoLK;};0Ag;4V^E>uLgzpPR zZ`HB#cmv!I) z5e5nsIrZa35s{(`8!F#x6WYS&)3o zw(G~Z6g&S6U2}TOnE%i|1LUe5lpA2s-D+F0E6TUe;0(3O48OOj{Tq5c6n=j=NBa~K z`zz&~{Oy2fPTjJa5(FpkZUja@b$R7%^X=6Kky+o(!95iQz2 zz;?twbESB@Qc$#W1^17>nf!}=Fdgxt4e^X0*;Vnih9Bt^369x6*&16bONpO}=+Y z9&E4voK7K5%fT`j9MG@){`amYTp9gjm{2GyGj#q+W6+js6a@Eo1Xv!v7eHKRx88I#=H^+PL+kBTk6)|HffdFt7ABZuO38*!)TjI65 z9qE7nIiZ@H*P*-=&loWkEk%gR2Y9q%G+d!`p8^`fZ~pV?eL6&c9>&7?$O6HG*!Hz_ zAPSW8-|EtaraV1oz70Es0Que8Xt?ICSKF$vx0k(n_l9Ya_OG?+pgOG;X*gJCha||L zJbLhgX4%$b1Hzm}UdYXG@~A&s%vPSD@3RAW)oT4@Bx6h~-bvO0yj9I zXV)^^vp7CK&~`0%MP@R#Z)ZYrnpsP2E>&qC0|IMM$68Ps^`+g!rnW(802;PKH;FXV z0})h0##|EObAxyJ6`xlqRN~(ui7py4MFXKeoZ!#Hd0!g}%hv;v*u2wa|tEii6OiqkHYUzJtuo+I-Id z+lRu_*88S|ZqeVFXL$U-^3L-})f z^V`op>zr0fk5;17#iyj~v51qE0zqgXJh|4bVH%(akI;dG0wl>9hwbLtp~?N)DNgty zK&gE!aZ`w+$g+Y$MsccmFizmt#@qN24^PhG!=U0;kj z7g?1ilm~WcU&^`~Nkex+GSdqNiTw$hF!9lx6E2)%t|#~XBc#f)o?k?~&*cbL>fela z4r?;wM%kJIJvpp2e8aV6vlPS;+P)IZFcMxaSNRvuoVsfLj~VH`u*~RHM9R4}u%Nm3 z>Ka44fqh${?y~kMRh(+53k(j&R1$2K^IgNZP{H19S1U#N@z9G&EtgFh6ss?(rSqbS zHz3LQ+fADnxJgV;r9X9N%w6cy&;5nFc*kl-+K8BIFr{{DsI}@fyn}I5R`oLb-$)-V zc|waucI5nctk@xS5w?|3O=j<$s>H^wnn}o)mhk-}1{DqGpC*BeDU^ntFu{vp<0k(O zMQbjMZBU&gF%v%kNEBDrh7By5Lz$h#ZZXd`!1;0UYTu#Nys+@&atrtQ%$2kNPIbXQ zoQiAo4cvL{Ie%Lg-_TCVp%d$e3G)J?XRswd|_C z$BLOsKbw<^)_m|4W%zl4X`*$;Ge4)lajhlZrHpxnTbbU9q#@lw3a`qVv4T_9<_y9{ zS3pGRru(nyewJcMUrCPqN3ZHf!8^0SNp?`I$Jz69?E=aGbK|pqOj1UCwXEgN+r@2^ z8SBOFE&JXgE{;5|5>J9_s|hy^{sQu`x;8BeBEqt#mg>xcuml&^nH^4(2Rq*EfBEG% zn#EH7lR%zE0;E_YD&d&Ns9I2$#=FK;oueL0`->f^|sXVCpgs!(P$UG44R0pAH5#Hoik?vjfxkdT- z2$G~1A3jFAYaLl~m~5wiqEKvTJjEsNXWZ1Wi&sCxN6mr zwkh{Cs?ltEQ*jROue~hV@CbhitniZi$RtlPkEK}=5EAT#gEo78v{aKu+_+WxkA%j? zXL7W%cU$+XrDn3eyG~Q2F38J&MQM^!b-~fi?tZ(xwr&RUV)h+&FVvOu`>@?0Yn*Q6@URX%eO}je)6?@ z3H(F(dW`3#>`JmkWehX=RE52csN05fbJ6kR?$Xztb$abq!!8OfBvNO~Zr1wEe$}%! zH%uG$C#WQK8CYa6$?VmkS@+&9SI*6hA`6Rcy*3h$REvTbcd}ZYMlb_zq!_4;T*~TcB@{_$7F3LE=7tu zsPUQ-y082VBSAdNb5aaFzlck5Q7_R4WW}gSrLdwpK4dT*?muA;IG!~D=}(cqi_jdy z?iJavZ3}4Y?9M1!%=c2KvEmfpC7jQ#4`9%xdVg&XxwtDGOOsnzkD7h2iNFa4C@Q;k zyB8g1mz~vq(>EUx8|*H;I|^b|`#>l6Jbm`WIewTQj8pms2S1d_!YFx@+b2vFyZ}+0 zIVWpbv+0)%NN&>vRw8;LP|m+@W7-)y6+YybZ=Vm=a5p=dX4cY5&(b~2E*E#c2n@?M zGSEvU@=ceHwCe&>%hgZG2w7(#VZ_NJ^iI|Fx^5z0gN28!jOybvLd_%lh4oGvlaabD zPwo4LqXwtnT_3`3>M3>azW+Js-QwbDb@RMR(l^&z(IVd!=0fOI4~NR>8#shUVs83r za9|2;Wn$fAKDn*7LQ`Sfb82n#=g_&#`_bu~O)jI5 z%-Z%i8%kk0QA3g%|KmTSxE_03a(QIxAiLV@qSX^!mss&=kOPHthdKBp9bz;IGy}fcv34@D{@NOR5oqBh zN`5l2n%hC_5Liq(2ol- zs6T8Jz7I7?@6mzxRHSEZ?H=`=qA3&2#}%JgNv7Z$=CV~#cRD&l@4D-Lj~Ul z0%HQqq6os`geDR~SLoB7qSt$drqyyD6sEXM_k|7Tq|Xu@Kf3_^aaWQ4^v2QrrDy9K zf+X*wNO4mc(YU)76sC(@aBQli9-uW8v=dhZuD)`nk2zh%L)z5J?^m<$;?Mg&Jxj)t zkzENSzZT_voM^L$k*U^$bQRlrwur)c_1^0El^5X&e^A$sSe9Wp4f@4QGaU+_Tnv0u zmVmw2;F}`AlUz=m*FGTKvPdB%dBfjTwNm_B{TKLyp8mn`cW{L075~>4@W06MfRYb_ zB&SvQpAqLRk)I?Ne_Y>H~D`O|G%c8vw1<@*ZUqgfN)%#=gK8(SQ!*W_$RiX BRp9^t literal 0 HcmV?d00001 diff --git a/img/banner-772x250.png b/img/banner-772x250.png new file mode 100644 index 0000000000000000000000000000000000000000..71fdb77c7b3f77bc9bc0476998a9f4d5be76a67b GIT binary patch literal 92240 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 literal 0 HcmV?d00001 diff --git a/lang/legi_display-fr_FR.po b/lang/legi_display-fr_FR.po new file mode 100644 index 0000000..fd534d8 --- /dev/null +++ b/lang/legi_display-fr_FR.po @@ -0,0 +1,142 @@ +msgid "" +msgstr "" +"Generated: SL Framework (http://www.sedlex.fr)\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2014-07-29T09:39:09+00:00\n" +"Last-Translator: SedLex \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n>1;\n" +"X-Poedit-Language: French\n" +"X-Poedit-Country: France\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-KeywordsList: __;\n" +"X-Poedit-Basepath: \n" +"X-Poedit-Bookmarks: \n" +"X-Poedit-SearchPath-0: .\n" +"X-Textdomain-Support: yes\n" + +msgid "List the available LEGI code that you have imported" +msgstr "Lister les codes LEGI disponibles et que vous avez importés" + +msgid "The code does not seems to be an appropriate code." +msgstr "Le code ne semble pas correct" + +msgid "The cache file %s has been deleted: it will be recreated in the next rendering of this code." +msgstr "Le fichier de cache %s a été supprimé : il sera recrée au prochain affichage de la page" + +msgid "Code that has just been imported" +msgstr "Un code vient juste d'être importé" + +msgid "Choose a code to import/update in the following list:" +msgstr "Choississez un code à importer dans la liste suivante : " + +msgid "Import" +msgstr "Importer" + +msgid "No code detected in your upload folder." +msgstr "Aucun code détecté dans le répertoire d'upload" + +msgid "Here is the list of code that has already been imported:" +msgstr "Voici une liste de codes ayant déjà été importés" + +msgid "No code has been imported." +msgstr "Aucun code n'a été importé" + +msgid "Already imported" +msgstr "Déjà importé" + +msgid "Import a code" +msgstr "Importer un code" + +msgid "This plugin Display French Codes and laws once the XML files are retrieved from %s. See %s for the licence." +msgstr "Ce plugin affiche les codes et lois françaises une fois que le XML a été récupéré depuis %s. Regarder %s pour la licence." + +msgid "Purpose of that plugin" +msgstr "But de ce plugin" + +msgid "At first, download the file %s on %s." +msgstr "Dans un premier temps, télécharger le fichier %s dans %s." + +msgid "Unpack this file on your website (for instance, with %s if your are on Windows or any other compatible software)." +msgstr "Décompresser ce fichier sur votre site web (par exemple, avec %s si vous utilisez Windows ou avec n'importe quel logiciel compatible)" + +msgid "The unpacked files should be stored without modification on you website, in the %s folder (and therefore, the path should be something like this %s)." +msgstr "Les fichiers décompressés doivent être stockés sans modification sur votre site web, dans le répertoire %s (ainsi, le chemin doit ressembler à %s)." + +msgid "Once this done, we should be able to import code in the Import tab." +msgstr "Une fois cela effectué, nous devrions être capable d'importer un code depuis l'onglet d'importation." + +msgid "How to import the codes?" +msgstr "Comment importer les codes?" + +msgid "After the importation, you may insert in a page the shortcode %s in order to create a list of all imported codes. There is also a button in the page editor to insert such shortcode." +msgstr "Après l'importation, vous pourrez ajouter à vos page le code %s afin de créer uen liste de tous les codes importés. Il existe également un bouton dans l'éditeur d'article permettant d'insérer un tel code. " + +msgid "How to consult a code?" +msgstr "Comment consulter un code ?" + +msgid "How To" +msgstr "" + +msgid "Sub-Dir" +msgstr "Sous-répertoire" + +msgid "The name of the folder that will be used for displaying the French Code:" +msgstr "Le nom du répertoire sera utilisé afin d'afficher les codes français :" + +msgid "If the folder is %s, the url to access the code would be something like %s." +msgstr "Si le répertoire est %s, l'URL d'accès sera de la forme %s." + +msgid "For consistency, you may create a page accessible through this url and add a shortcode %s to display the list of all code you imported." +msgstr "Par souci de cohérence, vous pouvez créer une page accessible par ce lien et ajouter un shortcode %s pour afficher la liste de tous les codes que vous avez importé." + +msgid "Web-Crawlers" +msgstr "Robots d'indexation" + +msgid "Allow the web crawlers (%s) to index the codes/articles:" +msgstr "Permettre aux robots d'indexation (%s) d'indexer les codes / articles:" + +msgid "It is recommended to de-activate this option as most of the crawlers penalize websites with a lot of new/similar contents." +msgstr "Il est recommandé de désactiver cette option car la plupart des robots pénalise les sites avec beaucoup de nouveaux coontenus ou des contenus identiques à d'autres sites." + +msgid "Appearance" +msgstr "Apparence" + +msgid "The CSS to be used:" +msgstr "Le CSS à utiliser :" + +msgid "The default value is:" +msgstr "La valeur par défaut est :" + +msgid "Parameters" +msgstr "Paramètres" + +msgid "Manage translations" +msgstr "Gérer les traductions" + +msgid "Give feedback" +msgstr "Donner un feedback" + +msgid "Other plugins" +msgstr "Autres plugins" + +msgid "No folder %s may be found in %s: Please dowload the XML file on %s and upload the appropriate folder here." +msgstr "Aucun dossier %s ne peut être trouvé dans %s : s'il vous plaît télécharger la fichier XML %s et télécharger le dossier approprié ici." + +msgid "The ID of the code should be 20 characters long (here, we have a %s characters long ID)." +msgstr "L'identifiant du code doit être d'une longueur de 20 caractères (ici, la longueur est de %s)." + +msgid "No folder %s may be found in %s. Please make sure that the ID is correct." +msgstr "Aucun dossier %s ne peut être trouvé dans %s. Merci de vérifier que l'identifiant est correct." + +msgid "%s entries have been imported (i.e. %s new entries and %s updated entries)." +msgstr "%s entrées a été importées (i.e. %s nouvelles entrées et %s entrées mises à jour)." + +msgid "Error: no id provided" +msgstr "Erreur: aucun identifiant soumis" + diff --git a/lang/legi_display.pot b/lang/legi_display.pot new file mode 100644 index 0000000..4e9e352 --- /dev/null +++ b/lang/legi_display.pot @@ -0,0 +1,204 @@ +Content-Transfer-Encoding: 8bit + +#: legi-display.php:626 +#@ legi_display +msgid "List the available LEGI code that you have imported" +msgstr "" + +#: legi-display.php:705 +#@ legi_display +msgid "The code does not seems to be an appropriate code." +msgstr "" + +#: legi-display.php:710 +#@ legi_display +msgid "The cache file %s has been deleted: it will be recreated in the next rendering of this code." +msgstr "" + +#: legi-display.php:713 +#@ legi_display +msgid "Code that has just been imported" +msgstr "" + +#: legi-display.php:717 +#@ legi_display +msgid "Choose a code to import/update in the following list:" +msgstr "" + +#: legi-display.php:725 +#: legi-display.php:730 +#@ legi_display +msgid "Import" +msgstr "" + +#: legi-display.php:727 +#@ legi_display +msgid "No code detected in your upload folder." +msgstr "" + +#: legi-display.php:732 +#@ legi_display +msgid "Here is the list of code that has already been imported:" +msgstr "" + +#: legi-display.php:743 +#: legi-display.php:746 +#@ legi_display +msgid "No code has been imported." +msgstr "" + +#: legi-display.php:749 +#@ legi_display +msgid "Already imported" +msgstr "" + +#: legi-display.php:758 +#@ legi_display +msgid "Import a code" +msgstr "" + +#: legi-display.php:762 +#@ legi_display +msgid "This plugin Display French Codes and laws once the XML files are retrieved from %s. See %s for the licence." +msgstr "" + +#: legi-display.php:763 +#@ legi_display +msgid "Purpose of that plugin" +msgstr "" + +#: legi-display.php:766 +#@ legi_display +msgid "At first, download the file %s on %s." +msgstr "" + +#: legi-display.php:767 +#@ legi_display +msgid "Unpack this file on your website (for instance, with %s if your are on Windows or any other compatible software)." +msgstr "" + +#: legi-display.php:768 +#@ legi_display +msgid "The unpacked files should be stored without modification on you website, in the %s folder (and therefore, the path should be something like this %s)." +msgstr "" + +#: legi-display.php:769 +#@ legi_display +msgid "Once this done, we should be able to import code in the Import tab." +msgstr "" + +#: legi-display.php:770 +#@ legi_display +msgid "How to import the codes?" +msgstr "" + +#: legi-display.php:773 +#@ legi_display +msgid "After the importation, you may insert in a page the shortcode %s in order to create a list of all imported codes. There is also a button in the page editor to insert such shortcode." +msgstr "" + +#: legi-display.php:774 +#@ legi_display +msgid "How to consult a code?" +msgstr "" + +#: legi-display.php:779 +#@ legi_display +msgid "How To" +msgstr "" + +#: legi-display.php:783 +#@ legi_display +msgid "Sub-Dir" +msgstr "" + +#: legi-display.php:784 +#@ legi_display +msgid "The name of the folder that will be used for displaying the French Code:" +msgstr "" + +#: legi-display.php:785 +#@ legi_display +msgid "If the folder is %s, the url to access the code would be something like %s." +msgstr "" + +#: legi-display.php:786 +#@ legi_display +msgid "For consistency, you may create a page accessible through this url and add a shortcode %s to display the list of all code you imported." +msgstr "" + +#: legi-display.php:788 +#@ legi_display +msgid "Web-Crawlers" +msgstr "" + +#: legi-display.php:789 +#@ legi_display +msgid "Allow the web crawlers (%s) to index the codes/articles:" +msgstr "" + +#: legi-display.php:790 +#@ legi_display +msgid "It is recommended to de-activate this option as most of the crawlers penalize websites with a lot of new/similar contents." +msgstr "" + +#: legi-display.php:792 +#@ legi_display +msgid "Appearance" +msgstr "" + +#: legi-display.php:793 +#@ legi_display +msgid "The CSS to be used:" +msgstr "" + +#: legi-display.php:794 +#@ legi_display +msgid "The default value is:" +msgstr "" + +#: legi-display.php:799 +#@ legi_display +msgid "Parameters" +msgstr "" + +#: legi-display.php:807 +#@ legi_display +msgid "Manage translations" +msgstr "" + +#: legi-display.php:814 +#@ legi_display +msgid "Give feedback" +msgstr "" + +#: legi-display.php:822 +#@ legi_display +msgid "Other plugins" +msgstr "" + +#: legi-display.php:913 +#@ legi_display +msgid "No folder %s may be found in %s: Please dowload the XML file on %s and upload the appropriate folder here." +msgstr "" + +#: legi-display.php:917 +#@ legi_display +msgid "The ID of the code should be 20 characters long (here, we have a %s characters long ID)." +msgstr "" + +#: legi-display.php:929 +#@ legi_display +msgid "No folder %s may be found in %s. Please make sure that the ID is correct." +msgstr "" + +#: legi-display.php:944 +#@ legi_display +msgid "%s entries have been imported (i.e. %s new entries and %s updated entries)." +msgstr "" + +#: legi-display.php:1730 +#@ legi_display +msgid "Error: no id provided" +msgstr "" + diff --git a/legi-display.php b/legi-display.php new file mode 100644 index 0000000..9aec421 --- /dev/null +++ b/legi-display.php @@ -0,0 +1,2197 @@ +Display French Codes and laws once the XML files are retrieved from ftp://legi@ftp2.journal-officiel.gouv.fr/

      See http://rip.journal-officiel.gouv.fr/index.php/pages/LO for the licence

      +Version: 1.0.0 +Framework: SL_Framework +Author: SedLex +Author URI: http://www.sedlex.fr/ +Author Email: sedlex@sedlex.fr +Framework Email: sedlex@sedlex.fr +Plugin URI: http://wordpress.org/plugins/legi-display/ +License: GPL3 +*/ + +//Including the framework in order to make the plugin work + +require_once('core.php') ; + +/** ==================================================================================================================================================== +* This class has to be extended from the pluginSedLex class which is defined in the framework +*/ +class legi_display extends pluginSedLex { + + /** ==================================================================================================================================================== + * Plugin initialization + * + * @return void + */ + static $instance = false; + + protected function _init() { + global $wpdb ; + + // Name of the plugin (Please modify) + $this->pluginName = 'Legi Display' ; + + // The structure of the SQL table if needed (for instance, 'id_post mediumint(9) NOT NULL, short_url TEXT DEFAULT '', UNIQUE KEY id_post (id_post)') + $this->tableSQL = "id MEDIUMINT(9) NOT NULL AUTO_INCREMENT, id_code VARCHAR(25), titre_code VARCHAR(255), info_code TEXT DEFAULT '', id_level1 VARCHAR(25), id_level2 VARCHAR(25), id_level3 VARCHAR(25), id_level4 VARCHAR(255), id_level5 VARCHAR(25), id_level6 VARCHAR(25), id_level7 VARCHAR(25), id_level8 VARCHAR(255), id_level9 VARCHAR(25), id_level10 VARCHAR(25), textes_id_level TEXT DEFAULT '', date_debut DATE, date_fin DATE, id_article VARCHAR(25), num_article VARCHAR(25), state VARCHAR(25), version TEXT DEFAULT '', lien_autres_articles TEXT DEFAULT '', texte TEXT DEFAULT '', PRIMARY KEY (id)" ; + + // The name of the SQL table (Do no modify except if you know what you do) + $this->table_name = $wpdb->prefix . "pluginSL_" . get_class() ; + + //Configuration of callbacks, shortcode, ... (Please modify) + // For instance, see + // - add_shortcode (http://codex.wordpress.org/Function_Reference/add_shortcode) + // - add_action + // - http://codex.wordpress.org/Function_Reference/add_action + // - http://codex.wordpress.org/Plugin_API/Action_Reference + // - add_filter + // - http://codex.wordpress.org/Function_Reference/add_filter + // - http://codex.wordpress.org/Plugin_API/Filter_Reference + // Be aware that the second argument should be of the form of array($this,"the_function") + // For instance add_action( "wp_ajax_foo", array($this,"bar")) : this function will call the method 'bar' when the ajax action 'foo' is called + + + // Important variables initialisation (Do not modify) + $this->path = __FILE__ ; + $this->pluginID = get_class() ; + + // activation and deactivation functions (Do not modify) + register_activation_hook(__FILE__, array($this,'install')); + register_deactivation_hook(__FILE__, array($this,'deactivate')); + register_uninstall_hook(__FILE__, array('legi_display','uninstall_removedata')); + + add_action( 'wp_ajax_nopriv_updateContenuLegi', array( $this, 'updateContenuLegi')); + add_action( 'wp_ajax_updateContenuLegi', array( $this, 'updateContenuLegi')); + + add_action('wp_head', array( $this, 'add_meta_tags')); + + add_shortcode( 'legi', array( $this, 'legi_shortcode' ) ); + + add_filter('template_include',array($this,'display_code_change_template'), 1); + add_filter('the_posts', array($this, 'display_code_define_post')); + + } + + /** ==================================================================================================================================================== + * In order to uninstall the plugin, few things are to be done ... + * (do not modify this function) + * + * @return void + */ + + static public function uninstall_removedata () { + global $wpdb ; + // DELETE OPTIONS + delete_option('legi_display'.'_options') ; + if (is_multisite()) { + delete_site_option('legi_display'.'_options') ; + } + + // DELETE SQL + if (function_exists('is_multisite') && is_multisite()){ + $old_blog = $wpdb->blogid; + $old_prefix = $wpdb->prefix ; + // Get all blog ids + $blogids = $wpdb->get_col($wpdb->prepare("SELECT blog_id FROM ".$wpdb->blogs)); + foreach ($blogids as $blog_id) { + switch_to_blog($blog_id); + $wpdb->query("DROP TABLE ".str_replace($old_prefix, $wpdb->prefix, $wpdb->prefix . "pluginSL_" . 'legi_display')) ; + } + switch_to_blog($old_blog); + } else { + $wpdb->query("DROP TABLE ".$wpdb->prefix . "pluginSL_" . 'legi_display' ) ; + } + } + + /**==================================================================================================================================================== + * Function called when the plugin is activated + * For instance, you can do stuff regarding the update of the format of the database if needed + * If you do not need this function, you may delete it. + * + * @return void + */ + + public function _update() { + SLFramework_Debug::log(get_class(), "Update the plugin." , 4) ; + } + + /**==================================================================================================================================================== + * Function called to return a number of notification of this plugin + * This number will be displayed in the admin menu + * + * @return int the number of notifications available + */ + + public function _notify() { + return 0 ; + } + + + /** ==================================================================================================================================================== + * Init javascript for the public side + * If you want to load a script, please type : + * wp_enqueue_script( 'jsapi', 'https://www.google.com/jsapi'); or + * wp_enqueue_script('legi_display_script', plugins_url('/script.js', __FILE__)); + * $this->add_inline_js($js_text); + * $this->add_js($js_url_file); + * + * @return void + */ + + function _public_js_load() { + global $post ; + global $wpdb ; + if (!isset($post->post_content)){ + return ; + } + if (preg_match_all("/#LEGI#([\w]*)-([\w]*)#LEGI#/ui", $post->post_content, $matches, PREG_SET_ORDER)) { + wp_enqueue_script('jquery-ui-slider', '', array('jquery'), false ); + ob_start() ; + + foreach ($matches as $m) { + $result = $wpdb->get_results("SELECT * FROM ".$this->table_name." WHERE id_article='".$m[2]."'") ; + foreach($result as $r) { + // GESTION DU SLIDER POUR AFFICHER PLUSIEURS VERSIONS + if ($r->version!="") { + $version = @unserialize($r->version) ; + if ($version!==false) { + $ver = array() ; + foreach($version as $v) { + $ver[$v['date_debut']] = array('state'=>$v['state'], 'date_fin'=>$v['date_fin'], 'num_article'=>$v['num_article'], 'id_article'=>$v['id_article']) ; + } + ksort($ver) ; + if (count($ver)>1) { + ?> + var legi_identifiant1 = "" ; + var legi_identifiant2 = "" ; + + function updateContenuLegi(identifiant){ + if ((identifiant==legi_identifiant1)&&(identifiant==legi_identifiant2)){ + return ; + } + legi_identifiant1 = identifiant ; + legi_identifiant2 = identifiant ; + + jQuery('#LegiContent').html("

      En attente du texte de l'article ... '/>

      ") + var arguments = { + id1: identifiant, + action: 'updateContenuLegi' + } + var ajaxurl2 = "" ; + jQuery.post(ajaxurl2, arguments, function(response) { + jQuery('#LegiContent').html(response) ; + }); + } + + function compareContenuLegi(identifiant1, identifiant2){ + + if ((identifiant1==legi_identifiant1)&&(identifiant2==legi_identifiant2)){ + return ; + } + + legi_identifiant1 = identifiant1 ; + legi_identifiant2 = identifiant2 ; + + jQuery('#LegiContent').html("

      En attente de la comparaison des articles ... '/>

      ") + + var arguments = { + id1: identifiant1, + id2: identifiant2, + action: 'updateContenuLegi' + } + var ajaxurl2 = "" ; + jQuery.post(ajaxurl2, arguments, function(response) { + jQuery('#LegiContent').html(response) ; + }); + } + + $info) { + $ii++ ; + if ($ii==1){ + $list_bornes[$info['id_article']] = array($pos, $pos+$incr); + $pos += $incr ; + } elseif ($ii==count($ver)){ + $incr = 100-$pos ; + $list_bornes[$info['id_article']] = array($pos, 100); + $mid_val = floor(($pos+100)/2) ; + } else { + $list_bornes[$info['id_article']] = array($pos, $pos+$incr); + $pos += $incr ; + } + } + echo ' + jQuery(function() { + jQuery( "#legi_activerComparaison" ).removeAttr("checked"); + jQuery( "#legi_slider" ).slider({ + value: '.$mid_val.', + slide: function( event, ui ) { + '; + foreach ($list_bornes as $lk=>$lb) { + echo 'if ((ui.value<'.$lb[1].')&&(ui.value>='.$lb[0].')){'."\r\n" ; + echo ' jQuery("#date_'.$lk.'").addClass("date_slider_highlight");'."\r\n" ; + foreach ($list_bornes as $t_lk=>$t_lb) { + if ($lk!=$t_lk){ + echo ' jQuery("#date_'.$t_lk.'").removeClass("date_slider_highlight");'."\r\n" ; + } + } + echo '}'."\r\n" ; + } + echo ' + }, + stop: function( event, ui ) { + '; + foreach ($list_bornes as $lk=>$lb) { + echo 'if ((ui.value<'.$lb[1].')&&(ui.value>='.$lb[0].')){'."\r\n" ; + echo ' jQuery( "#legi_slider" ).slider({value:'.floor(($lb[1]+$lb[0])/2).'});'."\r\n" ; + echo ' updateContenuLegi("'.$lk.'");'."\r\n" ; + echo '}'."\r\n" ; + } + echo ' + } + }); + + });'; + + ?> + function activerComparaison() { + if (jQuery( "#legi_activerComparaison" ).is(':checked')) { + currentValue = jQuery( "#legi_slider" ).slider("value") ; + jQuery( "#legi_slider" ).slider("destroy") ; + $lb) { + echo 'if ((currentValue<'.$lb[1].')&&(currentValue>='.$lb[0].')){'."\r\n" ; + foreach ($list_bornes as $lk2=>$lb2) { + if (($mid_val-2<$lb2[1])&&($mid_val-2>=$lb2[0])){ + echo ' compareContenuLegi("'.$lk.'", "'.$lk2.'");'."\r\n" ; + } + } + echo '}'."\r\n" ; + } + echo ' + + jQuery( "#legi_slider" ).slider({ + values: [currentValue+2,'.($mid_val-2).'], + slide: function( event, ui ) { + '; + foreach ($list_bornes as $lk=>$lb) { + echo 'if ((ui.values[0]<'.$lb[1].')&&(ui.values[0]>='.$lb[0].')){'."\r\n" ; + echo ' jQuery("#date_'.$lk.'").addClass("date_slider_highlight");'."\r\n" ; + foreach ($list_bornes as $t_lk=>$t_lb) { + if ($lk!=$t_lk){ + echo ' jQuery("#date_'.$t_lk.'").removeClass("date_slider_highlight");'."\r\n" ; + } + } + echo '}'."\r\n" ; + } + echo ' + }, + stop: function( event, ui ) { + '; + foreach ($list_bornes as $lk=>$lb) { + echo 'if ((ui.values[0]<'.$lb[1].')&&(ui.values[0]>='.$lb[0].')){'."\r\n" ; + echo ' otherValue = jQuery( "#legi_slider" ).slider("values", 1) ; '."\r\n" ; + echo ' jQuery( "#legi_slider" ).slider({values:['.(floor(($lb[1]+$lb[0])/2)+2).', otherValue]});'."\r\n" ; + foreach ($list_bornes as $lk2=>$lb2) { + echo 'if ((ui.values[1]<'.$lb2[1].')&&(ui.values[1]>='.$lb2[0].')){'."\r\n" ; + echo ' otherValue = jQuery( "#legi_slider" ).slider("values", 0) ; '."\r\n" ; + echo ' jQuery( "#legi_slider" ).slider({values:[otherValue,'.(floor(($lb2[1]+$lb2[0])/2)-2).']});'."\r\n" ; + echo ' compareContenuLegi("'.$lk.'", "'.$lk2.'");'."\r\n" ; + echo '}'."\r\n" ; + } + echo '}'."\r\n" ; + } + echo ' + } + + });'; + ?> + + } else { + currentValue = jQuery( "#legi_slider" ).slider("values", 0) ; + jQuery( "#legi_slider" ).slider("destroy") ; + + $lb) { + echo 'if ((currentValue<'.$lb[1].')&&(currentValue>='.$lb[0].')){'."\r\n" ; + echo ' updateContenuLegi("'.$lk.'");'."\r\n" ; + echo '}'."\r\n" ; + } + echo ' + jQuery( "#legi_slider" ).slider({ + value: currentValue-2, + slide: function( event, ui ) { + '; + foreach ($list_bornes as $lk=>$lb) { + echo 'if ((ui.value<'.$lb[1].')&&(ui.value>='.$lb[0].')){'."\r\n" ; + echo ' jQuery("#date_'.$lk.'").addClass("date_slider_highlight");'."\r\n" ; + foreach ($list_bornes as $t_lk=>$t_lb) { + if ($lk!=$t_lk){ + echo ' jQuery("#date_'.$t_lk.'").removeClass("date_slider_highlight");'."\r\n" ; + } + } + echo '}'."\r\n" ; + } + echo ' + }, + stop: function( event, ui ) { + '; + foreach ($list_bornes as $lk=>$lb) { + echo 'if ((ui.value<'.$lb[1].')&&(ui.value>='.$lb[0].')){'."\r\n" ; + echo ' jQuery( "#legi_slider" ).slider({value:'.floor(($lb[1]+$lb[0])/2).'});'."\r\n" ; + echo ' updateContenuLegi("'.$lk.'");'."\r\n" ; + echo '}'."\r\n" ; + } + echo ' + } + });'; + ?> + } + } + add_inline_js($java) ; + } + return ; + } + + /** ==================================================================================================================================================== + * Init css for the public side + * If you want to load a style sheet, please type : + * $this->add_inline_css($css_text); + * $this->add_css($css_url_file); + * + * @return void + */ + + function _public_css_load() { + $this->add_inline_css($this->get_param('css')) ; + return ; + } + + /** ==================================================================================================================================================== + * Init javascript for the admin side + * If you want to load a script, please type : + * wp_enqueue_script( 'jsapi', 'https://www.google.com/jsapi'); or + * wp_enqueue_script('legi_display_script', plugins_url('/script.js', __FILE__)); + * $this->add_inline_js($js_text); + * $this->add_js($js_url_file); + * + * @return void + */ + + function _admin_js_load() { + return ; + } + + /** ==================================================================================================================================================== + * Init css for the admin side + * If you want to load a style sheet, please type : + * $this->add_inline_css($css_text); + * $this->add_css($css_url_file); + * + * @return void + */ + + function _admin_css_load() { + return ; + } + + /** ==================================================================================================================================================== + * Called when the content is displayed + * + * @param string $content the content which will be displayed + * @param string $type the type of the article (e.g. post, page, custom_type1, etc.) + * @param boolean $excerpt if the display is performed during the loop + * @return string the new content + */ + + function _modify_content($content, $type, $excerpt) { + global $wpdb ; + global $_POST ; + + $crawler = "" ; + if (!$this->get_param('allow_crawler')){ + $crawler = " rel='nofollow'" ; + } + + // RECHERCHE + if (preg_match_all("/#LEGI#([\w]*)_RECHERCHE#LEGI#/ui", $content, $matches, PREG_SET_ORDER)) { + foreach ($matches as $m) { + ob_start() ; + // GESTION DU MODULE de RECHERCHE + $titre_code = $wpdb->get_var("SELECT titre_code FROM ".$this->table_name." WHERE id_code='".$m[1]."' LIMIT 1") ; + echo "
      " ; + echo "

      Rechercher dans le ".$titre_code."

      " ; + + // AFFICHAGE DES RESULTATS + if (isset($_POST['legi_rech_string'])) { + echo "

      Résultat de la recherche

      " ; + $search_str = strip_tags(html_entity_decode($_POST['legi_rech_string'])) ; + $search_str = trim(preg_replace("@[^\w -]@ui", " ", $search_str)) ; + $search_results = $this->search_words($m[1], explode(" ", $search_str)) ; + if (count($search_results)==0) { + echo "

      Aucun résultat

      " ; + } else { + if (count($search_results)!=20) { + echo "

      Les articles retournant un résultat pour '$search_str' sont (les articles sont affichés par ordre de pertinence):

      " ; + } else { + echo "

      Les 20 premiers articles retournant un résultat pour '$search_str' sont (les articles sont affichés par ordre de pertinence):

      " ; + } + echo "

        " ; + foreach($search_results as $id=>$sr) { + $num_art = $wpdb->get_var("SELECT num_article FROM ".$this->table_name." WHERE id_article='".$id."'") ; + echo "
      • ".$num_art."
      • " ; + } + echo "
      " ; + } + } else { + echo "Aucune recherche effectuée" ; + } + $content = str_replace($m[0], ob_get_clean(), $content) ; + } + } + + // CODE + if (preg_match_all("/#LEGI#([\w]*)#LEGI#/ui", $content, $matches, PREG_SET_ORDER)) { + foreach ($matches as $m) { + ob_start() ; + // GESTION DU MODULE de RECHERCHE + $titre_code = $wpdb->get_var("SELECT titre_code FROM ".$this->table_name." WHERE id_code='".$m[1]."' LIMIT 1") ; + echo "

      Rechercher dans le ".$titre_code."

      " ; + + // AFFICHAGE TREE + $array_to_display = $this->get_code_section($m[1]) ; + SLFramework_Treelist::render($array_to_display, true, null, "code_hiera") ; + $content = str_replace($m[0], ob_get_clean(), $content) ; + } + $info = @unserialize($wpdb->get_var("SELECT info_code FROM ".$this->table_name." WHERE id_code='".$m[1]."' LIMIT 1")) ; + } + + // ARTICLE + if (preg_match_all("/#LEGI#([\w]*)-([\w]*)#LEGI#/ui", $content, $matches, PREG_SET_ORDER)) { + + foreach ($matches as $m) { + ob_start() ; + $result = $wpdb->get_results("SELECT * FROM ".$this->table_name." WHERE id_article='".$m[2]."'") ; + foreach($result as $r) { + + // GESTION DU MODULE de RECHERCHE + echo "
      ".$r->titre_code."
      " ; + echo "

      Rechercher dans le ".$r->titre_code."

      " ; + + // GESTION DU SLIDER POUR AFFICHER PLUSIEURS VERSIONS + if ($r->version!="") { + $version = @unserialize($r->version) ; + if ($version!==false) { + $ver = array() ; + foreach($version as $v) { + $ver[$v['date_debut']] = array('state'=>$v['state'], 'date_fin'=>$v['date_fin'], 'num_article'=>$v['num_article'], 'id_article'=>$v['id_article']) ; + } + ksort($ver) ; + if (count($ver)>1) { + echo '
      ' ; + $incr = floor(100/(count($ver))) ; + $pos = 0 ; + $ii = 0 ; + foreach($ver as $k => $info) { + $ii++ ; + if ($ii==1){ + echo "
      ".$k."
      " ; + $pos += $incr ; + } elseif ($ii==count($ver)){ + $incr = 100-$pos ; + echo "
      ".$k."
      " ; + $mid_val = floor(($pos+100)/2) ; + } else { + echo "
      ".$k."
      " ; + $pos += $incr ; + } + } + echo '
      ' ; + echo '
      ' ; + echo '
      Activer la comparaison
      ' ; + } + } + } + // FIN SLIDER + + echo "

       

      ".$this->mise_en_forme_article($r)."
      "; + + + } + + $info = @unserialize($r->info_code) ; + + $array_to_display = $this->get_code_section($m[1],$m[2]) ; + SLFramework_Treelist::render($array_to_display, true, null, "code_hiera") ; + $content = str_replace($m[0], ob_get_clean(), $content) ; + } + } + // NOTICE + + $content .= "

       

      " ; + $content .= "
      " ; + $content .= "

      Ces informations sont issues de la base de données \"LEGI\" mise à disposition par LégiFrance, la direction de l'information légale et administrative et les services du Premier ministre.

      " ; + $content .= "

      Les données sont reproduites sans modification, si ce n'est celles nécessaires à la mise en forme de la page.

      " ; + if ((isset($info))&&(is_array($info))) { + $content .= "

      La dernière mise à jour de ce code a été réalisé le ".$info['derniere_maj'].".

      " ; + } + $content .= "
      " ; + + return $content; + } + + /** ==================================================================================================================================================== + * Search text into a code + * + * @return array of results + */ + + function search_words($code, $array_words) { + global $wpdb ; + $initial_results = array() ; + + // On regarde d'abord tous les articles qui contiennet au moins un mot de plus de trois lettres + foreach($array_words as $aw) { + if (strlen($aw)>2) { + $result = $wpdb->get_results("SELECT id_article, texte FROM ".$this->table_name." WHERE id_code='".$code."' AND state='VIGUEUR' AND (texte LIKE '%".$aw."%' OR texte LIKE '%".htmlentities($aw)."%')") ; + foreach($result as $r) { + if (!isset($initial_results[$r->id_article])) { + $texte = strip_tags(html_entity_decode($r->texte)) ; + $texte = trim(preg_replace("@[^\w -]@ui", " ", $texte)) ; + $initial_results[$r->id_article] = $texte ; + } + } + } + } + + // Maintenant, pour chaque texte trouvé, on calcul un score de proximite + $score_results = array() ; + $max_score_cible = 0 ; + foreach($initial_results as $k_ir => $ir) { + $score = 0 ; + $score_cible = 0 ; + foreach($array_words as $aw) { + if (strlen($aw)>0) { + $score_cible += strlen($aw)*log(2) ; + $score += strlen($aw)*log(1+mb_substr_count($ir, $aw)) ; + } + } + if ($max_score_cible<$score_cible) { + $max_score_cible = $score_cible ; + } + $score_results[$k_ir] = $score ; + } + + // On ne garde que les 20 meilleurs résultats + arsort($score_results) ; + $score_results = array_slice($score_results, 0, 20, true) ; + + // On normalise les resultats + $normalized_results = array() ; + foreach ($score_results as $k => $s) { + $normalized_results[$k] = floor($s/$max_score_cible*100) ; + } + + return $normalized_results ; + } + + /** ==================================================================================================================================================== + * Add a button in the TinyMCE Editor + * + * To add a new button, copy the commented lines a plurality of times (and uncomment them) + * + * @return array of buttons + */ + + function add_tinymce_buttons() { + $buttons = array() ; + $buttons[] = array(__('List the available LEGI code that you have imported', $this->pluginID), '[legi]', '', plugin_dir_url("/").'/'.str_replace(basename( __FILE__),"",plugin_basename( __FILE__)).'img/legi.png') ; + return $buttons ; + } + + /**==================================================================================================================================================== + * Function to instantiate the class and make it a singleton + * This function is not supposed to be modified or called (the only call is declared at the end of this file) + * + * @return void + */ + + public static function getInstance() { + if ( !self::$instance ) { + self::$instance = new self; + } + return self::$instance; + } + + /** ==================================================================================================================================================== + * Define the default option values of the plugin + * This function is called when the $this->get_param function do not find any value fo the given option + * Please note that the default return value will define the type of input form: if the default return value is a: + * - string, the input form will be an input text + * - integer, the input form will be an input text accepting only integer + * - string beggining with a '*', the input form will be a textarea + * - boolean, the input form will be a checkbox + * + * @param string $option the name of the option + * @return variant of the option + */ + public function get_default_option($option) { + switch ($option) { + // Alternative default return values (Please modify) + case 'css' : return "*" ; break ; + case 'folder_code' : return "code_fr" ; break ; + case 'allow_crawler' : return false ; break ; + } + return null ; + } + + /** ==================================================================================================================================================== + * The admin configuration page + * This function will be called when you select the plugin in the admin backend + * + * @return void + */ + + public function configuration_page() { + global $wpdb; + global $blog_id ; + + $blog_fold = "" ; + if (is_multisite()) { + $blog_fold = $blog_id."/" ; + } + + SLFramework_Debug::log(get_class(), "Print the configuration page." , 4) ; + + ?> +
      +

      pluginName ?>

      +
      +
      + check_folder_rights( array(array(WP_CONTENT_DIR."/sedlex/test/", "rwx")) ) ; + + $tabs = new SLFramework_Tabs() ; + + if (isset($_POST['import_code'])) { + ob_start() ; + $code = $_POST['import_code'] ; + if (preg_match("/[A-Z0-9]{20}/i", $code)) { + $result = $this->import_code($code) ; + echo $result['msg'] ; + } else { + echo __('The code does not seems to be an appropriate code.', $this->pluginID) ; + } + + if (is_file(WP_CONTENT_DIR."/sedlex/legi-display/".$blog_fold.$code.".array")) { + @unlink(WP_CONTENT_DIR."/sedlex/legi-display/".$blog_fold.$code.".array") ; + echo "

      ".sprintf(__("The cache file %s has been deleted: it will be recreated in the next rendering of this code.", $this->pluginID), "".WP_CONTENT_DIR."/sedlex/legi-display/".$blog_fold.$code.".array"."")."

      " ; + } + + $import_in_progress = new SLFramework_Box (__("Code that has just been imported", $this->pluginID), ob_get_clean()) ; + } + + ob_start() ; + echo "

      ".__('Choose a code to import/update in the following list:', $this->pluginID)."

      " ; + $list_code = $this->list_code() ; + if (($list_code !== false)&&(count($list_code)>0)) { + echo "

      pluginID)."'/>

      " ; + } else { + echo "

      ".__('No code detected in your upload folder.', $this->pluginID)."

      " ; + } + + $import = new SLFramework_Box (__("Import", $this->pluginID), ob_get_clean()) ; + ob_start() ; + echo "

      ".__('Here is the list of code that has already been imported:', $this->pluginID)."

      " ; + if (($list_code !== false)&&(count($list_code)>0)) { + $found = false ; + foreach ($list_code as $lc_k => $lc) { + $nb = $wpdb->get_var("SELECT COUNT(*) FROM ".$this->table_name." WHERE id_code='".esc_sql($lc_k)."'") ; + if ($nb>0) { + echo "

      ".$lc." ($nb)

      " ; + $found = true ; + } + } + if (!$found) { + echo "

      ".__('No code has been imported.', $this->pluginID)."

      " ; + } + } else { + echo "

      ".__('No code has been imported.', $this->pluginID)."

      " ; + } + + $imported = new SLFramework_Box (__("Already imported", $this->pluginID), ob_get_clean()) ; + + ob_start() ; + if (isset($_POST['import_code'])) { + echo $import_in_progress->flush() ; + } + echo $imported->flush() ; + echo $import->flush() ; + + $tabs->add_tab(__('Import a code', $this->pluginID), ob_get_clean()) ; + + // HOW To + ob_start() ; + echo "

      ".sprintf(__('This plugin Display French Codes and laws once the XML files are retrieved from %s. See %s for the licence.', $this->pluginID), "ftp://legi@ftp2.journal-officiel.gouv.fr/", "http://rip.journal-officiel.gouv.fr/index.php/pages/LO") ."

      " ; + $howto1 = new SLFramework_Box (__("Purpose of that plugin", $this->pluginID), ob_get_clean()) ; + ob_start() ; + $upload_dir = wp_upload_dir(); + echo "

      ".sprintf(__('At first, download the file %s on %s.', $this->pluginID), "LicenceFreemium_legi_legi_global_20xxxxxx-xxxxxx.tar.gz", "ftp://legi@ftp2.journal-officiel.gouv.fr/" )."

      " ; + echo "

      ".sprintf(__('Unpack this file on your website (for instance, with %s if your are on Windows or any other compatible software).', $this->pluginID), "7-Zip")."

      " ; + echo "

      ".sprintf(__('The unpacked files should be stored without modification on you website, in the %s folder (and therefore, the path should be something like this %s).', $this->pluginID), "".$upload_dir['basedir']."", "".$upload_dir['basedir']."/legi/global/code_et_TNC_en_vigueur/code_en_vigueur/...")."

      " ; + echo "

      ".__('Once this done, we should be able to import code in the Import tab.', $this->pluginID)."

      " ; + $howto2 = new SLFramework_Box (__("How to import the codes?", $this->pluginID), ob_get_clean()) ; + + ob_start() ; + echo "

      ".sprintf(__('After the importation, you may insert in a page the shortcode %s in order to create a list of all imported codes. There is also a button in the page editor to insert such shortcode.', $this->pluginID), '[legi]')."

      " ; + $howto3 = new SLFramework_Box (__("How to consult a code?", $this->pluginID), ob_get_clean()) ; + ob_start() ; + echo $howto1->flush() ; + echo $howto2->flush() ; + echo $howto3->flush() ; + $tabs->add_tab(__('How To', $this->pluginID), ob_get_clean() , plugin_dir_url("/").'/'.str_replace(basename(__FILE__),"",plugin_basename(__FILE__))."core/img/tab_how.png") ; + + ob_start() ; + $params = new SLFramework_Parameters($this, "tab-parameters") ; + $params->add_title(__('Sub-Dir', $this->pluginID)) ; + $params->add_param('folder_code', __('The name of the folder that will be used for displaying the French Code:', $this->pluginID)) ; + $params->add_comment(sprintf(__("If the folder is %s, the url to access the code would be something like %s.", $this->pluginID), "code_fr", "".site_url()."/code_fr/xxxxx/xxxxx")) ; + $params->add_comment(sprintf(__("For consistency, you may create a page accessible through this url and add a shortcode %s to display the list of all code you imported.", $this->pluginID), "[legi]")) ; + + $params->add_title(__('Web-Crawlers', $this->pluginID)) ; + $params->add_param('allow_crawler', sprintf(__('Allow the web crawlers (%s) to index the codes/articles:', $this->pluginID), $this->pluginID)) ; + $params->add_comment(__("It is recommended to de-activate this option as most of the crawlers penalize websites with a lot of new/similar contents.", $this->pluginID)) ; + + $params->add_title(__('Appearance', $this->pluginID)) ; + $params->add_param('css', __('The CSS to be used:', $this->pluginID)) ; + $params->add_comment(__("The default value is:", $this->pluginID)) ; + $params->add_comment_default_value('css') ; + + $params->flush() ; + + $tabs->add_tab(__('Parameters', $this->pluginID), ob_get_clean() , plugin_dir_url("/").'/'.str_replace(basename(__FILE__),"",plugin_basename(__FILE__))."core/img/tab_param.png") ; + + $frmk = new coreSLframework() ; + if (((is_multisite())&&($blog_id == 1))||(!is_multisite())||($frmk->get_param('global_allow_translation_by_blogs'))) { + ob_start() ; + $plugin = str_replace("/","",str_replace(basename(__FILE__),"",plugin_basename( __FILE__))) ; + $trans = new SLFramework_Translation($this->pluginID, $plugin) ; + $trans->enable_translation() ; + $tabs->add_tab(__('Manage translations', $this->pluginID), ob_get_clean() , plugin_dir_url("/").'/'.str_replace(basename(__FILE__),"",plugin_basename(__FILE__))."core/img/tab_trad.png") ; + } + + ob_start() ; + $plugin = str_replace("/","",str_replace(basename(__FILE__),"",plugin_basename( __FILE__))) ; + $trans = new SLFramework_Feedback($plugin, $this->pluginID) ; + $trans->enable_feedback() ; + $tabs->add_tab(__('Give feedback', $this->pluginID), ob_get_clean() , plugin_dir_url("/").'/'.str_replace(basename(__FILE__),"",plugin_basename(__FILE__))."core/img/tab_mail.png") ; + + ob_start() ; + // A list of plugin slug to be excluded + $exlude = array('wp-pirate-search') ; + // Replace sedLex by your own author name + $trans = new SLFramework_OtherPlugins("sedLex", $exlude) ; + $trans->list_plugins() ; + $tabs->add_tab(__('Other plugins', $this->pluginID), ob_get_clean() , plugin_dir_url("/").'/'.str_replace(basename(__FILE__),"",plugin_basename(__FILE__))."core/img/tab_plug.png") ; + + echo $tabs->flush() ; + + // Before this comment, you may modify whatever you want + //=============================================================================================== + ?> + signature ; ?> +
      + list_code_rec($upload_dir['basedir']."/legi/global/code_et_TNC_en_vigueur/code_en_vigueur") ; + asort($result) ; + return $result ; + } + + + + + /** ==================================================================================================================================================== + * To list the available code recursive + * + * @return void + */ + + function list_code_rec($path) { + if (!is_dir($path)) { + return array() ; + } + + if (is_dir($path.DIRECTORY_SEPARATOR."texte".DIRECTORY_SEPARATOR."version")) { + $list_file = scandir($path.DIRECTORY_SEPARATOR."texte".DIRECTORY_SEPARATOR."version") ; + foreach ($list_file as $ld) { + if (($ld!=".")&&($ld!="..")) { + if (is_file($path.DIRECTORY_SEPARATOR."texte".DIRECTORY_SEPARATOR."version".DIRECTORY_SEPARATOR.$ld)) { + if (preg_match("/[A-Z0-9]{20}\.xml/i", $ld)) { + $vxml = simplexml_load_file ($path.DIRECTORY_SEPARATOR."texte".DIRECTORY_SEPARATOR."version".DIRECTORY_SEPARATOR.$ld) ; + $titre = (string)$vxml->META->META_SPEC->META_TEXTE_VERSION->TITREFULL ; + $id_code = (string)$vxml->META->META_COMMUN->ID ; + return array($id_code=>$titre) ; + } + } + } + } + } + + if (is_dir($path.DIRECTORY_SEPARATOR."article")) { + //ERROR car on aurait du sortir avant ... + // Cela signifie qu'il n'y avait pas de xml decrivant le code + return array() ; + } + + + $list_code = array() ; + + $list_dir = scandir($path) ; + foreach ($list_dir as $ld) { + if (($ld!=".")&&($ld!="..")) { + $new_path = $path . DIRECTORY_SEPARATOR . $ld ; + if (is_dir($new_path)) { + $list_code_new = $this->list_code_rec($new_path) ; + $list_code = array_merge($list_code, $list_code_new) ; + } + } + } + + return $list_code ; + + } + /** ==================================================================================================================================================== + * To import a code from the XML files + * + * @return void + */ + + function import_code($id_code) { + $id_code = trim($id_code) ; + $upload_dir = wp_upload_dir(); + if (!is_dir($upload_dir['basedir']."/legi/global/code_et_TNC_en_vigueur/code_en_vigueur/")) { + return array("success"=>false , "msg"=>sprintf(__("No folder %s may be found in %s: Please dowload the XML file on %s and upload the appropriate folder here.", $this->pluginID), "/legi/global/code_et_TNC_en_vigueur/code_en_vigueur/", "".$upload_dir['basedir']."", "ftp://legi@ftp2.journal-officiel.gouv.fr/")); + } + // We check if the code is in the correct format such as LEGITEXT000006069414 + if (strlen($id_code)!=20) { + return array("success"=>false , "msg"=>sprintf(__("The ID of the code should be 20 characters long (here, we have a %s characters long ID).", $this->pluginID), strlen($id_code))); + } + $lev1 = substr($id_code, 0,4) ; + $lev2 = substr($id_code, 4,4) ; + $lev3 = substr($id_code, 8,2) ; + $lev4 = substr($id_code, 10,2) ; + $lev5 = substr($id_code, 12,2) ; + $lev6 = substr($id_code, 14,2) ; + $lev7 = substr($id_code, 16,2) ; + $lev8 = substr($id_code, 18,2) ; + $path = $upload_dir['basedir']."/legi/global/code_et_TNC_en_vigueur/code_en_vigueur/".$lev1."/".$lev2."/".$lev3."/".$lev4."/".$lev5."/".$lev6."/".$lev7."/".$id_code."/" ; + if (!is_dir($path)) { + return array("success"=>false , "msg"=>sprintf(__("No folder %s may be found in %s. Please make sure that the ID is correct.", $this->pluginID), "/".$lev1."/".$lev2."/".$lev3."/".$lev4."/".$lev5."/".$lev6."/".$lev7."/".$id_code."/", "".$upload_dir['basedir']."/legi/global/code_et_TNC_en_vigueur/code_en_vigueur/", "ftp://legi@ftp2.journal-officiel.gouv.fr/")); + } + // Recupérer info sur code + $info_code = serialize(array('status'=>'', 'derniere_maj'=>'' )) ; + if (is_file($path."texte/version/".$id_code.".xml")) { + $oxml = simplexml_load_file ($path."texte/version/".$id_code.".xml") ; + if ($oxml!==false) { + $status_code = (string)$oxml->META->META_SPEC->META_TEXTE_VERSION->ETAT ; + $derniere_maj = (string)$oxml->META->META_SPEC->META_TEXTE_CHRONICLE->DERNIERE_MODIFICATION ; + $info_code = serialize(array('status'=>$status_code, 'derniere_maj'=>$derniere_maj )) ; + } + } + + $nb_entry = $this->import_code_rec($path."article", $info_code) ; + + return array("success"=>true , "msg"=>sprintf(__("%s entries have been imported (i.e. %s new entries and %s updated entries).", $this->pluginID), $nb_entry['new']+$nb_entry['update'], $nb_entry['new'], $nb_entry['update'])); + } + + /** ==================================================================================================================================================== + * To import a code from the XML files (reccursive) + * + * @return integer nb of entry imported + */ + + function import_code_rec($path, $info_code) { + global $wpdb ; + + if (!is_dir($path)) { + return array('new'=>0, 'update'=>0) ; + } + + $nb_entry = array('new'=>0, 'update'=>0) ; + + $list_dir = scandir($path) ; + foreach ($list_dir as $ld) { + if (($ld!=".")&&($ld!="..")) { + $new_path = $path . DIRECTORY_SEPARATOR . $ld ; + if (is_dir($new_path)) { + $nb_entry_new = $this->import_code_rec($new_path, $info_code) ; + $nb_entry['new'] += $nb_entry_new['new'] ; + $nb_entry['update'] += $nb_entry_new['update'] ; + } + if (is_file($new_path)) { + if (preg_match("/[A-Z0-9]{20}\.xml/i", $ld)) { + // TODO Import the file + $parsed_result = $this->parse_article_xml($new_path) ; + $already = $wpdb->get_var("SELECT COUNT(*) FROM ".$this->table_name." WHERE id_article='".esc_sql($parsed_result['id_article'])."' AND id_code='".esc_sql($parsed_result['id_code'])."'") ; + if ($already!=0) { + $wpdb->query("UPDATE ".$this->table_name." SET titre_code='".esc_sql($parsed_result['titre_code'])."', info_code='".esc_sql($info_code)."', id_level1='".esc_sql($parsed_result['id_level1'])."',id_level2='".esc_sql($parsed_result['id_level2'])."',id_level3='".esc_sql($parsed_result['id_level3'])."', id_level4='".esc_sql($parsed_result['id_level4'])."',id_level5='".esc_sql($parsed_result['id_level5'])."',id_level6='".esc_sql($parsed_result['id_level6'])."',id_level7='".esc_sql($parsed_result['id_level7'])."', id_level8='".esc_sql($parsed_result['id_level8'])."',id_level9='".esc_sql($parsed_result['id_level9'])."',id_level10='".esc_sql($parsed_result['id_level10'])."', textes_id_level='".esc_sql(serialize($parsed_result['textes_id_level']))."', date_debut='".esc_sql($parsed_result['date_debut'])."', date_fin='".esc_sql($parsed_result['date_fin'])."', num_article='".esc_sql($parsed_result['num_article'])."', state='".esc_sql($parsed_result['state'])."', texte='".esc_sql($parsed_result['texte'])."', version='".esc_sql(serialize($parsed_result['version']))."', lien_autres_articles='".esc_sql(serialize($parsed_result['lien_autres_articles']))."' WHERE id_article='".$parsed_result['id_article']."' AND id_code='".esc_sql($parsed_result['id_code'])."'") ; + $nb_entry['update'] ++ ; + } else { + $wpdb->query("INSERT INTO ".$this->table_name." (id_article, id_code, titre_code, info_code,id_level1,id_level2,id_level3,id_level4,id_level5,id_level6,id_level7,id_level8,id_level9,id_level10,textes_id_level,date_debut,date_fin,num_article,state,texte,version,lien_autres_articles) VALUES ('".esc_sql($parsed_result['id_article'])."','".esc_sql($parsed_result['id_code'])."','".esc_sql($parsed_result['titre_code'])."', '".esc_sql($info_code)."', '".esc_sql($parsed_result['id_level1'])."','".esc_sql($parsed_result['id_level2'])."','".esc_sql($parsed_result['id_level3'])."','".esc_sql($parsed_result['id_level4'])."','".esc_sql($parsed_result['id_level5'])."','".esc_sql($parsed_result['id_level6'])."','".esc_sql($parsed_result['id_level7'])."','".esc_sql($parsed_result['id_level8'])."','".esc_sql($parsed_result['id_level9'])."','".esc_sql($parsed_result['id_level10'])."','".esc_sql(serialize($parsed_result['textes_id_level']))."','".esc_sql($parsed_result['date_debut'])."','".esc_sql($parsed_result['date_fin'])."','".esc_sql($parsed_result['num_article'])."','".esc_sql($parsed_result['state'])."','".esc_sql($parsed_result['texte'])."','".esc_sql(serialize($parsed_result['version']))."','".esc_sql(serialize($parsed_result['lien_autres_articles']))."')") ; + $nb_entry['new'] ++ ; + } + } + } + } + } + return $nb_entry ; + } + + /** ==================================================================================================================================================== + * To parse an article XML file + * + * @return integer nb of entry imported + */ + + function parse_article_xml($path) { + if (!is_file($path)) { + return false ; + } + $oxml = simplexml_load_file ($path) ; + if ($oxml===false) { + return false ; + } + + $id_article = (string)$oxml->META->META_COMMUN->ID ; + $num_article = (string)$oxml->META->META_SPEC->META_ARTICLE->NUM ; + $state = (string)$oxml->META->META_SPEC->META_ARTICLE->ETAT ; + $date_debut = (string)$oxml->META->META_SPEC->META_ARTICLE->DATE_DEBUT ; + $date_fin = (string)$oxml->META->META_SPEC->META_ARTICLE->DATE_FIN ; + + $version = array() ; + foreach($oxml->VERSIONS->VERSION as $v) { + $attr = $v->LIEN_ART->attributes() ; + $version[] = array( + "state"=>(string)$attr['etat'], + "date_debut"=>(string)$attr['debut'], + "date_fin"=>(string)$attr['fin'], + "id_article"=>(string)$attr['id'], + "num_article"=>(string)$attr['num'], + ) ; + } + + $id_code = (string)$oxml->CONTEXTE->TEXTE->attributes()->cid ; + $titre_code = (string)$oxml->CONTEXTE->TEXTE->TITRE_TXT ; + + $id_level1 = "" ; + $id_level2 = "" ; + $id_level3 = "" ; + $id_level4 = "" ; + $id_level5 = "" ; + $id_level6 = "" ; + $id_level7 = "" ; + $id_level8 = "" ; + $id_level9 = "" ; + $id_level10 = "" ; + $textes_id_level = array() ; + + // LEVEL 1 + if (isset($oxml->CONTEXTE->TEXTE->TM)){ + $tm = $oxml->CONTEXTE->TEXTE->TM ; + $id_level1 = (string)$tm->TITRE_TM->attributes()->id ; + $textes_id_level[] = (string)$tm->TITRE_TM ; + + // LEVEL 2 + if (isset($tm->TM)){ + $tm = $tm->TM ; + $id_level2 = (string)$tm->TITRE_TM->attributes()->id ; + $textes_id_level[] = (string)$tm->TITRE_TM ; + + // LEVEL 3 + if (isset($tm->TM)){ + $tm = $tm->TM ; + $id_level3 = (string)$tm->TITRE_TM->attributes()->id ; + $textes_id_level[] = (string)$tm->TITRE_TM ; + + // LEVEL 4 + if (isset($tm->TM)){ + $tm = $tm->TM ; + $id_level4 = (string)$tm->TITRE_TM->attributes()->id ; + $textes_id_level[] = (string)$tm->TITRE_TM ; + + // LEVEL 5 + if (isset($tm->TM)){ + $tm = $tm->TM ; + $id_level5 = (string)$tm->TITRE_TM->attributes()->id ; + $textes_id_level[] = (string)$tm->TITRE_TM ; + + // LEVEL 6 + if (isset($tm->TM)){ + $tm = $tm->TM ; + $id_level6 = (string)$tm->TITRE_TM->attributes()->id ; + $textes_id_level[] = (string)$tm->TITRE_TM ; + + // LEVEL 7 + if (isset($tm->TM)){ + $tm = $tm->TM ; + $id_level7 = (string)$tm->TITRE_TM->attributes()->id ; + $textes_id_level[] = (string)$tm->TITRE_TM ; + + // LEVEL 8 + if (isset($tm->TM)){ + $tm = $tm->TM ; + $id_level8 = (string)$tm->TITRE_TM->attributes()->id ; + $textes_id_level[] = (string)$tm->TITRE_TM ; + + // LEVEL 9 + if (isset($tm->TM)){ + $tm = $tm->TM ; + $id_level9 = (string)$tm->TITRE_TM->attributes()->id ; + $textes_id_level[] = (string)$tm->TITRE_TM ; + + // LEVEL 10 + if (isset($tm->TM)){ + $tm = $tm->TM ; + $id_level10 = (string)$tm->TITRE_TM->attributes()->id ; + $textes_id_level[] = (string)$tm->TITRE_TM ; + + } + + } + + } + + } + + } + + } + + } + } + } + + } + + $texte = $this->SimpleXMLtoHTMLString($oxml->BLOC_TEXTUEL->CONTENU) ; + + $lien_autres_articles = array() ; + foreach ($oxml->LIENS->LIEN as $l) { + $lien_autres_articles[] = array('id_texte'=>(string)$l->attributes()->cidtexte, 'id_article'=>(string)$l->attributes()->id, 'sens'=>(string)$l->attributes()->sens,'typelien'=>(string)$l->attributes()->typelien,'date'=>str_replace("2999-01-01","",(string)$l->attributes()->datesignatexte), 'texte'=>(string)$l) ; + } + + return array("id_code"=>$id_code, "titre_code"=>$titre_code, "id_level1"=>$id_level1, "id_level2"=>$id_level2, "id_level3"=>$id_level3, "id_level4"=>$id_level4, "id_level5"=>$id_level5, "id_level6"=>$id_level6, "id_level7"=>$id_level7, "id_level8"=>$id_level8, "id_level9"=>$id_level9, "id_level10"=>$id_level10, "textes_id_level"=>$textes_id_level, "date_debut"=>$date_debut, "date_fin"=>$date_fin, "id_article"=>$id_article, "num_article"=>$num_article, "state"=>$state, "version"=>$version, "lien_autres_articles"=>$lien_autres_articles, "texte"=>$texte) ; + } + + function SimpleXMLtoHTMLString($simplexml){ + $ele=dom_import_simplexml($simplexml); + $dom = new DOMDocument('1.0', 'utf-8'); + $element=$dom->importNode($ele,true); + $dom->appendChild($element); + return $dom->saveHTML(); + } + + /** ==================================================================================================================================================== + * Make sure that requested uri is a correct uri for the display of the french code + * + * @return array result of the check + */ + + function parse_legi_uri() { + global $wpdb ; + + $url = urldecode($_SERVER['REQUEST_URI']) ; + if (strpos($url, "/".$this->get_param("folder_code"))!==false) { + $url = explode("/".$this->get_param("folder_code"), $url) ; + if (count($url)==2) { + + $url = trim($url[1]) ; + if (substr($url, 0,1)=="/") { + $url = substr($url,1) ; + } + + if ($url!="") { + + // + // Url de type + // /code/recherche/ + // + //-------------------------------------------------------- + + // RECHERCHE + if(preg_match("@^[/]*([\w-]*)/recherche[/]{0,1}$@ui", $url, $matches)) { + + $select_query = "SELECT DISTINCT id_code FROM ".$this->table_name." WHERE state='VIGUEUR'" ; + $results = $wpdb->get_results($select_query) ; + $found_code = false ; + // On recherche le code + foreach ($results as $r) { + $titre_code = $this->id_code_to_url($r->id_code, false) ; + if ($matches[1]==$titre_code) { + $found_code = $r->id_code ; + } + } + if ($found_code!=false) { + // On affiche le résumé du code + return array($found_code, "recherche") ; + } else { + return false ; + } + } + + // + // Url de type + // /code/ + // + //-------------------------------------------------------- + + if(preg_match("@^[/]*([\w-]*)[/]{0,1}$@ui", $url, $matches)) { + + $select_query = "SELECT DISTINCT id_code FROM ".$this->table_name." WHERE state='VIGUEUR'" ; + $results = $wpdb->get_results($select_query) ; + $found_code = false ; + // On recherche le code + foreach ($results as $r) { + $titre_code = $this->id_code_to_url($r->id_code, false) ; + if ($matches[1]==$titre_code) { + $found_code = $r->id_code ; + } + } + if ($found_code!=false) { + // On affiche le résumé du code + return array($found_code, false) ; + } else { + return false ; + } + } + + // + // Url de type + // /code/article/ + // + //-------------------------------------------------------- + + if(preg_match("@^[/]*([\w-]*)/([\w-]*)[/]{0,1}$@ui", $url, $matches)) { + + $select_query = "SELECT DISTINCT id_code FROM ".$this->table_name." WHERE state='VIGUEUR'" ; + $results = $wpdb->get_results($select_query) ; + $found_code = false ; + // On recherche le code + foreach ($results as $r) { + $titre_code = $this->id_code_to_url($r->id_code, false) ; + if ($matches[1]==$titre_code) { + $found_code = $r->id_code ; + } + } + if ($found_code!=false) { + // On cherche les articles du code ayant les même trois premières lettres + $results = $wpdb->get_results("SELECT DISTINCT id_article FROM ".$this->table_name." WHERE id_code='".$found_code."' and LOWER(num_article) LIKE '".esc_sql(substr(str_replace("article_", "", $matches[2]), 0,3))."%' and state='VIGUEUR'") ; + $found_article = false ; + // On recherche article + foreach ($results as $r) { + $num_article = $this->id_article_to_url($r->id_article, false) ; + if ($matches[2]==$num_article) { + $found_article = $r->id_article ; + } + } + if ($found_article!=false) { + return array($found_code, $found_article) ; + } else { + // On recherche alors dans les articles non-en vigueur + $results_temp = array() ; + $results = $wpdb->get_results("SELECT DISTINCT id_article, date_fin FROM ".$this->table_name." WHERE id_code='".$found_code."' and LOWER(num_article) LIKE '".esc_sql(substr(str_replace("article_", "", $matches[2]), 0,3))."%'") ; + // On recherche article + foreach ($results as $r) { + $num_article = $this->id_article_to_url($r->id_article, false) ; + if ($matches[2]==$num_article) { + $results_temp[$r->date_fin] = $r->id_article ; + } + } + if (count($results_temp)==0) { + return false ; + } + if (count($results_temp)>=1) { + krsort($results_temp) ; + $found_article = array_shift($results_temp) ; + return array($found_code, $found_article) ; + } + } + } else { + return false ; + } + } else { + return false ; + } + } else { + return false ; + } + } else { + return false ; + } + } else { + return false ; + } + } + + + /** ==================================================================================================================================================== + * Make sure that the template is correct + * + * @return string the template path + */ + + function display_code_change_template($template) { + global $post; + global $wpdb; + global $wp_query ; + + $url = $this->parse_legi_uri() ; + if (is_array($url)) { + if (is_file(get_template_directory(). '/page.php')) { + $template = get_template_directory() . '/page.php'; + } else { + if (is_file(get_template_directory(). '/index.php')) { + $template = get_template_directory() . '/index.php'; + } + } + header("HTTP/1.1 200 OK"); + } + return $template ; + } + + /** ==================================================================================================================================================== + * Create the page with the correct page + * + * @return string the template path + */ + + function display_code_define_post($posts) { + global $wp, $wp_query, $wpdb; + + $url = $this->parse_legi_uri() ; + if (is_array($url)) { + //create a fake post intance + $post = new stdClass; + // fill properties of $post with everything a page in the database would have + $post->ID = -1; // use an illegal value for page ID + $post->post_author = 0; // post author id + $post->post_date = date("Y-m-d H:i:s"); // date of post + $post->post_date_gmt = date("Y-m-d H:i:s"); + $post->post_excerpt = ''; + $post->post_status = 'publish'; + $post->comment_status = 'closed'; // mark as closed for comments, since page doesn't exist + $post->ping_status = 'closed'; // mark as closed for pings, since page doesn't exist + $post->post_password = ''; // no password + $post->post_name = $this->get_param("folder_code") ; + $post->to_ping = ''; + $post->pinged = ''; + $post->modified = date("Y-m-d H:i:s"); + $post->modified_gmt = date("Y-m-d H:i:s"); + $post->post_content_filtered = ''; + $post->post_parent = 0; + $post->guid = get_home_url('/' . $this->get_param("folder_code")); + $post->menu_order = 0; + $post->post_tyle = "page"; + $post->post_mime_type = ''; + $post->comment_count = 0; + + // set filter results + $posts = array($post); + + // reset wp_query properties to simulate a found page + $wp_query->is_page = true; + $wp_query->is_singular = true; + $wp_query->is_home = false; + $wp_query->is_archive = false; + $wp_query->is_category = false; + unset($wp_query->query['error']); + $wp_query->query_vars['error'] = ''; + $wp_query->is_404 = false; + + // On modifie le texte pour créer une page d'article + // Si le deuxieme argument est un string (i.e. id d'article) + if ((is_string($url[1]))&&($url[1]!="recherche")) { + $result = $wpdb->get_results("SELECT * FROM ".$this->table_name." WHERE id_article='".$url[1]."'") ; + $post->post_content = "" ; + foreach($result as $r) { + $post->post_content .= "#LEGI#".$url[0]."-".$url[1]."#LEGI# " ; + $post->post_title = "Article ".$r->num_article." | ".$r->titre_code; + } + } + + // On modifie le texte pour créer une page de recherche + // Si le deuxieme argument est un string et vaut 'recherche' + if ((is_string($url[1]))&&($url[1]=="recherche")) { + $post->post_content .= "#LEGI#".$url[0]."_RECHERCHE#LEGI#" ; + $post->post_title = "Recherche | ".$wpdb->get_var("SELECT DISTINCT titre_code FROM ".$this->table_name." WHERE id_code='".$url[0]."' LIMIT 1") ; + } + + // On modifie le texte pour créer une page de code + // Si le deuxieme argument est false + + if ($url[1]===false) { + // On ne met pas directement la hierarchie ici car les differents filtres foutent le + // bordel sur le javascript du code + + $post->post_content .= "#LEGI#".$url[0]."#LEGI#" ; + $post->post_title = $wpdb->get_var("SELECT DISTINCT titre_code FROM ".$this->table_name." WHERE id_code='".$url[0]."' LIMIT 1") ; + } + + } + return ($posts); + } + + /** ==================================================================================================================================================== + * metadata + * + * @return void + */ + + function add_meta_tags() { + if (!$this->get_param('allow_crawler')) { + $url = $this->parse_legi_uri() ; + if (is_array($url)) { + echo ''."\r\n" ; + } + } + return ; + } + + + /** ==================================================================================================================================================== + * Get the section of a code (same as explore but with cache) + * + * @return array + */ + + function get_code_section($code, $article=null) { + global $blog_id ; + // We create the folder for the backup files + $blog_fold = "" ; + if (is_multisite()) { + $blog_fold = $blog_id."/" ; + } + + $array = $this->get_code_section_from_cache($code, $article) ; + if (is_array($array)){ + return $array ; + } + + $array = $this->explore_code_section($code) ; + // we save + if (!is_dir(WP_CONTENT_DIR."/sedlex/legi-display/".$blog_fold)) { + @mkdir(WP_CONTENT_DIR."/sedlex/legi-display/".$blog_fold, 0777, true) ; + } + @file_put_contents(WP_CONTENT_DIR."/sedlex/legi-display/".$blog_fold.$code.".array", serialize($array)) ; + + $array = $this->get_code_section_from_cache($code, $article) ; + if (is_array($array)){ + return $array ; + } + + return $array ; + } + + /** ==================================================================================================================================================== + * Get the section of a code from cache + * + * @return array + */ + + function get_code_section_from_cache($code, $article=null) { + global $blog_id ; + // We create the folder for the backup files + $blog_fold = "" ; + if (is_multisite()) { + $blog_fold = $blog_id."/" ; + } + + $array = array() ; + if (is_file(WP_CONTENT_DIR."/sedlex/legi-display/".$blog_fold.$code.".array")) { + $array_text = @file_get_contents(WP_CONTENT_DIR."/sedlex/legi-display/".$blog_fold.$code.".array") ; + if (!is_null($article)) { + $array_text = str_replace("_in_hiera'", "_in_light'", $array_text) ; + } + $array = @unserialize($array_text) ; + if (is_array($array)) { + // Si c'est un article on ferme ce qui n'est pas sur le chemin + if (!is_null($article)) { + $array = $this->close_code_section($array, $article) ; + } + return $array ; + } + } + return false ; + } + + /** ==================================================================================================================================================== + * Close unneeded the section of a code + * + * @return array + */ + + function close_code_section($array, $article, $level=1) { + global $wpdb ; + $new_array = array() ; + $art_seul = false ; + $found_at_least = false ; + foreach($array as $a) { + if (is_array($a)){ + if (strpos($a[1], "_art_seul")!==false) { + // On le traite à la fin pour savoir si l'article est dans un autre section + $art_seul = $a ; + } else { + $nb = $wpdb->get_var("SELECT COUNT(*) FROM ".$this->table_name." WHERE id_article='".$article."' AND id_level".$level."='".$a[1]."'") ; + if ($nb==0) { + $a[3] = false ; + // On regarde si ce n'est pas l'article + if ($article==$a[1]){ + $a[0] = "".$a[0]."" ; + } + } else { + $a[3] = true ; + $found_at_least = true ; + $a[0] = str_replace("in_light'", "in_hiera'", $a[0]) ; + $a[2] = $this->close_code_section($a[2], $article, $level+1) ; + } + $new_array[] = $a ; + } + } + } + + if (is_array($art_seul)) { + if ($found_at_least) { + $art_seul[3] = false ; + $art_seul[0] = str_replace("in_light'", "in_hiera'", $art_seul[0]) ; + + array_unshift($new_array, $art_seul) ; + } else { + // Si on a pas trouve c'est que l'article est dans les articles indépendants + $art_seul[3] = true ; + $art_seul[2] = $this->close_code_section($art_seul[2], $article, $level+1) ; + array_unshift($new_array, $art_seul) ; + } + } else { + + } + return $new_array ; + } + + /** ==================================================================================================================================================== + * Explore the section of a code + * + * @return string the text to replace the shortcode + */ + + function explore_code_section($code, $level=1, $id_level_prec=false) { + global $wpdb ; + if ($level>10) { + return array() ; + } + + $crawler = "" ; + if (!$this->get_param('allow_crawler')){ + $crawler = " rel='nofollow'" ; + } + + $array_out = array() ; + + $id_prec = "" ; + if ($level>=2) { + $id_prec = " AND id_level".($level-1)."='".$id_level_prec."'" ; + } + $result = $wpdb->get_results("SELECT DISTINCT id_level".$level." as id_level FROM ".$this->table_name." WHERE id_code='".$code."' AND state='VIGUEUR'".$id_prec) ; + // On stock + $all_sections = array() ; + foreach($result as $r) { + $textes_id_level = @unserialize(stripslashes($wpdb->get_var("SELECT textes_id_level FROM ".$this->table_name." WHERE id_level".$level."='".$r->id_level."' AND state='VIGUEUR' LIMIT 1"))) ; + + if ((isset($textes_id_level[$level-1]))&&(trim($textes_id_level[$level-1])!="")) { + $all_sections[$r->id_level] = trim($textes_id_level[$level-1]) ; + } + } + // On tri + $bool = uasort($all_sections, array($this, 'order_sections')); + + // On affiche et on reccurse + foreach($all_sections as $k=>$as) { + $string_out = "" ; + + $recu_resu = $this->explore_code_section($code, $level+1, $k) ; + + if (empty($recu_resu)) { + // C'est le dernier niveau donc on l'indique + $so = explode(":",strip_tags($as)) ; + $so[0] = "".$so[0]."" ; + $string_out .= implode(":", $so)." (" ; + $list_article = $wpdb->get_results("SELECT id_article, num_article FROM ".$this->table_name." WHERE id_code='".$code."' AND state='VIGUEUR' AND id_level".($level)."='".$k."'") ; + $list_a = array() ; + // On sauve les articles + foreach ($list_article as $la) { + $list_a[$la->id_article] = $la->num_article ; + } + + // On classe les articles + $bool = uasort($list_a, array($this, 'order_articles')); + + // On affiche + $j = 0 ; + foreach ($list_a as $ka=>$la) { + $j++ ; + if (count($list_a)==1) { + // article + $string_out .= "".strip_tags($la)."" ; + } else { + if ($j==1) { + // section + $string_out .= "de ".strip_tags($la) ; + } + } + if (($j==count($list_a)) && ($j!=1)) { + $string_out .= " à ".strip_tags($la)."" ; + $string_out .= " - ".count($list_a)." articles" ; + } + } + if (count($list_a)==0) { + $string_out .= "Vide" ; + } + + $string_out .= ")" ; + // On cree la list des articles ; + $article_full = array() ; + foreach ($list_a as $ka=>$la) { + $article_full[] = array("".strip_tags($la)."", $ka) ; + } + + $array_out[] = array("".$string_out."", $k, $article_full, false) ; + } else { + + // On regarde s'il y a des articles seuls + if ($level<10) { + $list_article = $wpdb->get_results("SELECT id_article, num_article FROM ".$this->table_name." WHERE id_code='".$code."' AND state='VIGUEUR' AND id_level".($level)."='".$k."' AND id_level".($level+1)."=''") ; + if (count($list_article)>0) { + $list_a = array() ; + // On sauve les articles + foreach ($list_article as $la) { + $list_a[$la->id_article] = $la->num_article ; + } + // On classe les articles + $bool = uasort($list_a, array($this, 'order_articles')); + + // On affiche + $j = 0 ; + $string_out = "Articles seuls (" ; + foreach ($list_a as $ka=>$la) { + $j++ ; + if (count($list_a)==1) { + // article + $string_out .= "".strip_tags($la)."" ; + } else { + if ($j==1) { + // section + $string_out .= "de ".strip_tags($la) ; + } + } + if (($j==count($list_a)) && ($j!=1)) { + $string_out .= " à ".strip_tags($la)."" ; + $string_out .= " - ".count($list_a)." articles" ; + } + } + + $string_out .= ")" ; + // On cree la list des articles ; + $article_full = array() ; + foreach ($list_a as $ka=>$la) { + $article_full[] = array("".strip_tags($la)."", $ka) ; + } + + array_unshift($recu_resu, array($string_out, $k."_art_seul", $article_full, false)) ; + } + } + + + $so = explode(":",strip_tags($as)) ; + $so[0] = "".$so[0]."" ; + $array_out[] = array("".implode(":", $so)."", $k, $recu_resu, true) ; + } + } + + return $array_out ; + } + + + /** ==================================================================================================================================================== + * Create a list of available code + * + * @return string the text to replace the shortcode + */ + + function legi_shortcode( $_atts, $string ) { + global $wpdb ; + + $atts = shortcode_atts( array( + 'code' => 'all' + ), $_atts ); + + $crawler = "" ; + if (!$this->get_param('allow_crawler')){ + $crawler = " rel='nofollow'" ; + } + + $result = "
        " ; + $select_query = "SELECT DISTINCT id_code, titre_code FROM ".$this->table_name." WHERE state='VIGUEUR'" ; + $results = $wpdb->get_results($select_query) ; + $found = false ; + foreach ($results as $r) { + $url_to_code = $this->id_code_to_url($r->id_code) ; + $result .= "
      • ".$r->titre_code."

      • " ; + $found = true ; + } + $result .= "
      " ; + if ($found==false) { + return "

      Aucun code importé dans votre base de données

      " ; + } + + return $result ; + } + + + /** ==================================================================================================================================================== + * Callback to display a new article + * + * @return void + */ + + function updateContenuLegi() { + global $_POST; + global $wpdb ; + + $id1 = preg_replace("/[^\w]/ui","",$_POST['id1']) ; + if (isset($_POST['id2'])) { + $id2 = preg_replace("/[^\w]/ui","",$_POST['id2']) ; + } else { + $id2 = "" ; + } + + if ((($id1!="")&&($id2==""))||(($id1!="")&&($id2==$id1))) { + $result = $wpdb->get_results("SELECT * FROM ".$this->table_name." WHERE id_article='".$id1."'") ; + foreach($result as $r) { + echo $this->mise_en_forme_article($r) ; + } + } elseif (($id1!="")&&($id2!="")) { + $result1 = $wpdb->get_results("SELECT * FROM ".$this->table_name." WHERE id_article='".$id1."'") ; + $result2 = $wpdb->get_results("SELECT * FROM ".$this->table_name." WHERE id_article='".$id2."'") ; + foreach($result1 as $r1) { + foreach($result2 as $r2) { + echo $this->mise_en_forme_article($r1, $r2) ; + } + } + } else { + echo __('Error: no id provided', $this->pluginID) ; + } + + die() ; + } + + /** ==================================================================================================================================================== + * TYranform the texte to be displayed + * + * @return string the text + */ + + function mise_en_forme_article($article, $o_article=null) { + global $wpdb; + + $crawler = "" ; + if (!$this->get_param('allow_crawler')){ + $crawler = ' rel="nofollow"' ; + } + + $texte = html_entity_decode($article->texte); + if (!is_null($o_article)){ + $texte2 = html_entity_decode($o_article->texte); + } + + // GESTION DE LA DATE + if ($article->state=="VIGUEUR") { + $date = "

      En vigueur depuis le ".$article->date_debut."

      "; + } else { + $date = "

      ".ucfirst(strtolower($article->state))." - Cet article était en vigueur entre le ".$article->date_debut." et ".$article->date_fin."

      "; + } + + // GESTION DU CONTENU 1 + $texte = trim(preg_replace("@@ui", " ### ", $texte)) ; + $texte = trim(preg_replace("@<[/]*p[\s]*>@ui", " ### ", $texte)) ; + $texte = trim(preg_replace("@([^\s])([.,;:])@ui", "$1 $2", $texte)) ; + $texte = trim(preg_replace("@([.,;:])([^\s])@ui", "$1 $2", $texte)) ; + + $texte = preg_replace('/\s\s+/', ' ', $texte); + + // GESTION DU CONTENU 2 + if (!is_null($o_article)) { + $texte2 = trim(preg_replace("@@ui", " ### ", $texte2)) ; + $texte2 = trim(preg_replace("@<[/]*p[\s]*>@ui", " ### ", $texte2)) ; + $texte2 = trim(preg_replace("@([^\s])([.,;:])@ui", "$1 $2", $texte2)) ; + $texte2 = trim(preg_replace("@([.,;:])([^\s])@ui", "$1 $2", $texte2)) ; + + $texte2 = preg_replace('/\s\s+/', ' ', $texte2); + + $diff = new SLFramework_Textdiff() ; + $diff->diff(strip_tags($texte2), strip_tags($texte)) ; + $texte = html_entity_decode($diff->show_simple_difference()) ; + } + + $texte = str_replace(" .", ".", $texte) ; + $texte = str_replace(" ,", ",", $texte) ; + + // Si jamais un paragraphe est doit couper une modification, on ferme et on réouvre la modification + if (!is_null($o_article)) { + $texte = preg_replace_callback("@([^<]*)@ui", array($this, "checkParagraphAndModif"), $texte) ; + } + + $texte = explode("###", $texte) ; + $newtexte = "" ; + // On gère les paragraphes + foreach ($texte as $t){ + if (trim($t)!=""){ + if (preg_match("@^[0-9]+°.*$@ui", preg_replace("@\s@ui", "", $t))) { + $newtexte .= "

      ".trim($t)."

      " ; + } elseif (preg_match("@^-.*$@ui", preg_replace("@\s@ui", "", $t))) { + $newtexte .= "

      ".trim($t)."

      " ; + } else { + $newtexte .= "

      ".trim($t)."

      " ; + } + } + } + + // LIENS + $liens = "" ; + $liens_interne = "

      Liens vers des articles de ce code

      " ; + $liens_externe = "

      Liens vers d'autres textes

      " ; + $already_displayed_links = array() ; + $nb_interne = 0 ; + $nb_externe = 0 ; + + if ($article->lien_autres_articles!="") { + $lien_autres_articles = @unserialize($article->lien_autres_articles) ; + if ($lien_autres_articles!==false){ + $liens .= "
      " ; + + foreach($lien_autres_articles as $v) { + // On verifie que l'on ne l'a pas deja traité + $needle = $v['id_texte'].$v['id_article'] ; + if (in_array($needle, $already_displayed_links)){ + continue; + } else { + $already_displayed_links[] = $needle ; + } + + // autres possibilités non-implémentées + //------------------------------------------------------ + // ADHESION, ADHERE, + // ANNULATION, ANNULE, + // DENONCIATION, DENONCE, + // DIRECTIVE_EUROPEENNE, + // DISJONCTION, DISJOINT, + // ELARGISSEMENT, ELARGIT, + // RENVOIT, RENVOI, + // EXTENSION, ETEND, + // DEPLACEMENT, DEPLACE, + // PEREMPTION, PERIME, + // PILOTE_SUIVEUR, + // PUBLICATION, + // SARDE, + // TEXTE_SUITE, + // TRANSFERT, TRANSFERE, + // RATTACHEMENT, RATTACHE, + // RECTIFICATION, RECTIFIE, + // SUITE_PROCEDURALE, + // JURISPRUDENTIEL, + // CITATION_JURI_LEGI , + // PERIME_NVCC_IDCC, + // PEREMPTION_NVCC_IDCC, + // HISTO, + // TXT_SOURCE, + // SPEC_APPLI, + // TXT_ASSOCIE + + $sens_info = "" ; + if (($v['typelien']=="CODIFICATION")||($v['typelien']=="CODIFIE")) { + $sens_info .= "codifié par " ; + } elseif (($v['typelien']=="CREATION")||($v['typelien']=="CREE")) { + $sens_info .= "créé par " ; + } elseif (($v['typelien']=="CONCORDANCE")||($v['typelien']=="CONCORDE")) { + $sens_info .= "ancien texte " ; + } elseif (($v['typelien']=="ABROGATION")||($v['typelien']=="ABROGE")) { + $sens_info .= "abrogé par " ; + } elseif (($v['typelien']=="APPLICATION")||($v['typelien']=="APPLIQUE")) { + $sens_info .= "mis en application par " ; + } elseif ($v['typelien']=="TRANSPOSITION") { + $sens_info .= "transposant " ; + } elseif (($v['typelien']=="CITATION")&&($v['sens']=="source")) { + $sens_info .= "citant l'article " ; + } elseif (($v['typelien']=="CITATION")&&($v['sens']=="cible")) { + $sens_info .= "cité par " ; + } elseif (($v['typelien']=="MODIFICATION")||($v['typelien']=="MODIFIE")) { + $sens_info .= "modifié par " ; + } elseif ($v['typelien']=="SPEC_APPLI") { + $sens_info .= "conditions d'application données par " ; + } else { + $sens_info .= $v['typelien']." - ".$v['sens']." : " ; + } + + // Lien interne + if ($article->id_code==$v['id_texte']) { + $nom_art = $wpdb->get_var("SELECT num_article FROM ".$this->table_name." WHERE id_article='".$v['id_article']."'") ; + + $found_article = false ; + // On ne remplace l'article que si on est pas en mode comparaison + if ((is_null($o_article))&&(!is_null($nom_art))) { + $nom_art_temp=preg_replace("@[^A-Z0-9-]@ui", "", $nom_art) ; + $nom_art_regex=preg_replace("@([A-Z])([0-9])@ui", "$1(?:.{0,3})$2", $nom_art_temp) ; + $newtexte2=preg_replace("@".$nom_art_regex."([^A-Z0-9-/])@ui", ''.$nom_art_temp.'$1', $newtexte) ; + if ($newtexte2!=$newtexte){ + // On a remplacé au moins un article + $newtexte = $newtexte2 ; + $found_article = true ; + } + } + // Si l'article n'existe pas, on ignore en faisant croire qu'on a trouvé + if (is_null($nom_art)) { + $found_article = true ; + } + if (!$found_article){ + $liens_interne .= "

      ".$sens_info.''.$nom_art."

      "; + $nb_interne ++ ; + } + + // Lien externe + } else { + if (($v['id_texte']==$v['id_article'])&&($v['id_texte']!="")||($v['id_texte']!=$v['id_article'])&&($v['id_article']=="")) { + $liens_externe .= "

      ".$sens_info.''.$v['texte']."

      "; + $nb_externe ++ ; + } elseif ($v['id_texte']!=$v['id_article']) { + $liens_externe .= "

      ".$sens_info.''.$v['texte']."

      "; + $nb_externe ++ ; + } else { + $liens_externe .= "

      (".$v['sens']."-".$v['typelien']."-".preg_replace("/[^0-9]/ui", "", $v['date']).") ".$v['texte']." (".$v['id_texte']." - ".$v['id_article'].")

      "; + $nb_externe ++ ; + } + } + } + } + } + + if ($nb_interne>0) { + $liens .= $liens_interne ; + } + if ($nb_externe>0) { + $liens .= $liens_externe ; + } + $liens .= "
      " ; + if ($nb_interne+$nb_externe==0) { + $liens = "" ; + } + + // ON RETOURNE LE TOUT + + return $date.$newtexte.$liens; + } + + function checkParagraphAndModif($matches){ + $returnString = "" ; + $interieur = explode("###", $matches[2]) ; + $j = 0 ; + foreach ($interieur as $i) { + if ($j != 0){ + $returnString .= "###" ; + } + $j++ ; + $returnString .= "" ; + $returnString .= $i ; + $returnString .= "" ; + } + return $returnString ; + } + + /** ==================================================================================================================================================== + * Find the previous/next article + * + * @return array the url + */ + + function find_previous_next_article($array, $article, $level=1, $result) { + global $wpdb ; + $art_seul = false ; + $found_at_least = false ; + $result = false ; + foreach($array as $a) { + if (is_array($a)){ + if (strpos($a[1], "_art_seul")!==false) { + // On le traite à la fin pour savoir si l'article est dans un autre section + $art_seul[2] = $this->find_previous_next_article($art_seul[2], $article, $level+1) ; + } else { + $nb = $wpdb->get_var("SELECT COUNT(*) FROM ".$this->table_name." WHERE id_article='".$article."' AND id_level".$level."='".$a[1]."'") ; + if ($nb!=0) { + $a[2] = $this->find_previous_next_article($a[2], $article, $level+1) ; + } + } + } + } + + return $new_array ; + } + + + /** ==================================================================================================================================================== + * Transform an id of a code into an URL + * + * @return string the url + */ + + function id_code_to_url($id, $all=true) { + global $wpdb ; + $select_query = "SELECT titre_code FROM ".$this->table_name." WHERE id_code='".$id."'" ; + $results = $wpdb->get_results($select_query) ; + foreach ($results as $r) { + $titre_code = strtolower($r->titre_code) ; + $titre_code = str_replace(" du ", " ", $titre_code) ; + $titre_code = str_replace(" des ", " ", $titre_code) ; + $titre_code = str_replace(" de ", " ", $titre_code) ; + $titre_code = str_replace(" le ", " ", $titre_code) ; + $titre_code = str_replace(" la ", " ", $titre_code) ; + $titre_code = str_replace(" l'", " ", $titre_code) ; + $titre_code = str_replace(", ", " ", $titre_code) ; + $titre_code = str_replace(".", "", $titre_code) ; + $titre_code = preg_replace("/[^\w-]/ui", "_", $titre_code) ; + if ($all) { + $url_to_code = site_url()."/".$this->get_param("folder_code")."/".$titre_code.'/' ; + } else { + $url_to_code = $titre_code ; + } + return $url_to_code ; + } + } + + /** ==================================================================================================================================================== + * Transform an id of a article into an URL + * + * @return string the url + */ + + function id_article_to_url($id, $all=true) { + global $wpdb ; + $select_query = "SELECT id_code, num_article FROM ".$this->table_name." WHERE id_article='".$id."'" ; + $results = $wpdb->get_results($select_query) ; + foreach ($results as $r) { + $titre_code = $this->id_code_to_url($r->id_code, false) ; + + $num_article = strtolower($r->num_article) ; + $num_article = preg_replace("/[^\w-]/ui", "_", $num_article) ; + + if ($all) { + $url_to_article = site_url()."/".$this->get_param("folder_code")."/".$titre_code.'/'."article_".$num_article."/" ; + } else { + $url_to_article = "article_".$num_article ; + } + return $url_to_article ; + } + } + + /** ==================================================================================================================================================== + * Give an order for articles + * + * @return integer + */ + + function order_articles($a, $b) { + $temp = $a ; + $temp = preg_replace("/[^0-9-]/ui", "", $temp) ; + $temp = explode("-", $temp) ; + $a = $temp ; + + $temp = $b ; + $temp = preg_replace("/[^0-9-]/ui", "", $temp) ; + $temp = explode("-", $temp) ; + $b = $temp ; + + for($i=0 ; $i$a[$i]) { + return -1 ; + } + } + + return -1 ; + } + + /** ==================================================================================================================================================== + * Give an order for sections + * + * @return integer + */ + function order_sections($a, $b) { + + $test=false ; + if ((strpos($a, "Titre préliminaire")!==false)||(strpos($a, "Titre préliminaire")!==false)) { + $test = true ; + } + + $romans = array( + 'M' => 1000, + 'CM' => 900, + 'D' => 500, + 'CD' => 400, + 'C' => 100, + 'XC' => 90, + 'L' => 50, + 'XL' => 40, + 'X' => 10, + 'IX' => 9, + 'V' => 5, + 'IV' => 4, + 'I' => 1, + ); + + // On modifie a + $temp = $a ; + $temp = str_replace("Partie", "", $temp) ; + $temp = str_replace("Livre", "", $temp) ; + $temp = str_replace("Titre", "", $temp) ; + $temp = str_replace("Chapitre", "", $temp) ; + $temp = str_replace("Section", "", $temp) ; + $temp = str_replace("Sous-section", "", $temp) ; + $temp = str_replace("Paragraphe", "", $temp) ; + + $temp = str_replace("préliminaire", "0", $temp) ; + $temp = str_replace("Ier", "I", $temp) ; + $temp = str_replace("Premier", "1", $temp) ; + $temp = str_replace("Première", "1", $temp) ; + $temp = str_replace("Deuxième", "2", $temp) ; + $temp = str_replace("Second", "2", $temp) ; + $temp = str_replace("Troisième", "3", $temp) ; + $temp = str_replace("Quatrième", "4", $temp) ; + $temp = str_replace("Cinquième", "5", $temp) ; + $temp = str_replace("Sixième", "6", $temp) ; + $temp = str_replace("Septième", "7", $temp) ; + $temp = str_replace("Huitième", "8", $temp) ; + $temp = str_replace("Neuvième", "9", $temp) ; + $temp = explode(" ", $temp) ; + $na = array() ; + foreach ($temp as $pa) { + // Roman number + if (preg_match("/^[MCDXLVI]+$/u", $pa)) { + $result_a = 0; + foreach ($romans as $key => $value) { + while (strpos($pa, $key) === 0) { + $result_a += $value; + $pa = substr($pa, strlen($key)); + } + } + $na[]= $result_a ; + } else { + $na[]= $pa ; + } + } + $a = implode(" ", $na) ; + + // On modifie b + $temp = $b ; + $temp = str_replace("Partie", "", $temp) ; + $temp = str_replace("Livre", "", $temp) ; + $temp = str_replace("Titre", "", $temp) ; + $temp = str_replace("Chapitre", "", $temp) ; + $temp = str_replace("Section", "", $temp) ; + $temp = str_replace("Sous-section", "", $temp) ; + $temp = str_replace("Paragraphe", "", $temp) ; + + $temp = str_replace("préliminaire", "0", $temp) ; + $temp = str_replace("Ier", "I", $temp) ; + $temp = str_replace("Premier", "1", $temp) ; + $temp = str_replace("Première", "1", $temp) ; + $temp = str_replace("Deuxième", "2", $temp) ; + $temp = str_replace("Second", "2", $temp) ; + $temp = str_replace("Troisième", "3", $temp) ; + $temp = str_replace("Quatrième", "4", $temp) ; + $temp = str_replace("Cinquième", "5", $temp) ; + $temp = str_replace("Sixième", "6", $temp) ; + $temp = str_replace("Septième", "7", $temp) ; + $temp = str_replace("Huitième", "8", $temp) ; + $temp = str_replace("Neuvième", "9", $temp) ; + $temp = explode(" ", $temp) ; + $na = array() ; + foreach ($temp as $pa) { + // Roman number + if (preg_match("/^[MCDXLVI]+$/u", $pa)) { + $result_a = 0; + foreach ($romans as $key => $value) { + while (strpos($pa, $key) === 0) { + $result_a += $value; + $pa = substr($pa, strlen($key)); + } + } + $na[]= $result_a ; + } else { + $na[]= $pa ; + } + } + $b = implode(" ", $na) ; + + if ($test) { + echo "$a - $b
      " ; + } + + return strcmp($a,$b) ; + } + +} + + +$legi_display = legi_display::getInstance(); + +?> \ No newline at end of file diff --git a/readme.txt b/readme.txt new file mode 100644 index 0000000..ec9babf --- /dev/null +++ b/readme.txt @@ -0,0 +1,58 @@ +=== Legi Display === + +Author: SedLex +Contributors: SedLex +Author URI: http://www.sedlex.fr/ +Plugin URI: http://wordpress.org/plugins/legi-display/ +Tags: tag +Requires at least: 3.0 +Tested up to: 3.9.1 +Stable tag: trunk + +Display French Codes and laws once the XML files are retrieved from ftp://legi@ftp2.journal-officiel.gouv.fr/ + +== Description == + +Display French Codes and laws once the XML files are retrieved from ftp://legi@ftp2.journal-officiel.gouv.fr/ + +See http://rip.journal-officiel.gouv.fr/index.php/pages/LO for the licence + += Multisite - Wordpress MU = + +Works on multisite installation. + += Localization = + +* English (United States), default language +* French (France) translation provided by SedLex + += Features of the framework = + +This plugin uses the SL framework. This framework eases the creation of new plugins by providing tools and frames (see dev-toolbox plugin for more info). + +You may easily translate the text of the plugin and submit it to the developer, send a feedback, or choose the location of the plugin in the admin panel. + +Have fun ! + +== Installation == + +1. Upload this folder legi-display to your plugin directory (for instance '/wp-content/plugins/') +2. Activate the plugin through the 'Plugins' menu in WordPress +3. Navigate to the 'SL plugins' box +4. All plugins developed with the SL core will be listed in this box +5. Enjoy ! + +== Screenshots == + +1. A comparison feature of different version of an article +2. The hierarchy tree of a code + +== Changelog == + += 1.0.0 = +* First release : enjoy ! + +== Frequently Asked Questions == + + +InfoVersion:4a68b37f155d0016c39f65f1b8d3189b9aeb0bc3 \ No newline at end of file diff --git a/screenshot-1.png b/screenshot-1.png new file mode 100644 index 0000000000000000000000000000000000000000..10795650dab3155e848732989cd083da59226bb1 GIT binary patch literal 95057 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 XHef$V<$CB2@RNS4@TOc`&+mT#owdCq literal 0 HcmV?d00001 diff --git a/screenshot-2.png b/screenshot-2.png new file mode 100644 index 0000000000000000000000000000000000000000..6e860524b8b1c0d7b73dca67bd08b9e323af16cb GIT binary patch literal 69880 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

    ".sprintf(__('The Wordpress page: %s', 'SL_framework'),"http://wordpress.org/extend/plugins/".$plug->slug."")."