/** * A simple set of functions to check our version 1.0 update service. * * @package WordPress * @since 2.3.0 */ /** * Check WordPress version against the newest version. * * The WordPress version, PHP version, and Locale is sent. Checks against the * WordPress server at api.wordpress.org server. Will only check if WordPress * isn't installing. * * @since 2.3.0 * @uses $wp_version Used to check against the newest WordPress version. * * @param array $extra_stats Extra statistics to report to the WordPress.org API. * @param bool $force_check Whether to bypass the transient cache and force a fresh update check. Defaults to false, true if $extra_stats is set. * @return mixed Returns null if update is unsupported. Returns false if check is too soon. */ function wp_version_check( $extra_stats = array(), $force_check = false ) { if ( defined('WP_INSTALLING') ) return; global $wpdb, $wp_local_package; include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version $php_version = phpversion(); $current = get_site_transient( 'update_core' ); $translations = wp_get_installed_translations( 'core' ); // Invalidate the transient when $wp_version changes if ( is_object( $current ) && $wp_version != $current->version_checked ) $current = false; if ( ! is_object($current) ) { $current = new stdClass; $current->updates = array(); $current->version_checked = $wp_version; } if ( ! empty( $extra_stats ) ) $force_check = true; // Wait 60 seconds between multiple version check requests $timeout = 60; $time_not_changed = isset( $current->last_checked ) && $timeout > ( time() - $current->last_checked ); if ( ! $force_check && $time_not_changed ) return false; $locale = get_locale(); /** * Filter the locale requested for WordPress core translations. * * @since 2.8.0 * * @param string $locale Current locale. */ $locale = apply_filters( 'core_version_check_locale', $locale ); // Update last_checked for current to prevent multiple blocking requests if request hangs $current->last_checked = time(); set_site_transient( 'update_core', $current ); if ( method_exists( $wpdb, 'db_version' ) ) $mysql_version = preg_replace('/[^0-9.].*/', '', $wpdb->db_version()); else $mysql_version = 'N/A'; if ( is_multisite() ) { $user_count = get_user_count(); $num_blogs = get_blog_count(); $wp_install = network_site_url(); $multisite_enabled = 1; } else { $user_count = count_users(); $user_count = $user_count['total_users']; $multisite_enabled = 0; $num_blogs = 1; $wp_install = home_url( '/' ); } $query = array( 'version' => $wp_version, 'php' => $php_version, 'locale' => $locale, 'mysql' => $mysql_version, 'local_package' => isset( $wp_local_package ) ? $wp_local_package : '', 'blogs' => $num_blogs, 'users' => $user_count, 'multisite_enabled' => $multisite_enabled, ); $post_body = array( 'translations' => json_encode( $translations ), ); if ( is_array( $extra_stats ) ) $post_body = array_merge( $post_body, $extra_stats ); $url = $http_url = 'http://api.wordpress.org/core/version-check/1.7/?' . http_build_query( $query, null, '&' ); if ( $ssl = wp_http_supports( array( 'ssl' ) ) ) $url = set_url_scheme( $url, 'https' ); $options = array( 'timeout' => ( ( defined('DOING_CRON') && DOING_CRON ) ? 30 : 3 ), 'user-agent' => 'WordPress/' . $wp_version . '; ' . home_url( '/' ), 'headers' => array( 'wp_install' => $wp_install, 'wp_blog' => home_url( '/' ) ), 'body' => $post_body, ); $response = wp_remote_post( $url, $options ); if ( $ssl && is_wp_error( $response ) ) { trigger_error( __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server’s configuration. If you continue to have problems, please try the support forums.' ) . ' ' . __( '(WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.)' ), headers_sent() || WP_DEBUG ? E_USER_WARNING : E_USER_NOTICE ); $response = wp_remote_post( $http_url, $options ); } if ( is_wp_error( $response ) || 200 != wp_remote_retrieve_response_code( $response ) ) return false; $body = trim( wp_remote_retrieve_body( $response ) ); $body = json_decode( $body, true ); if ( ! is_array( $body ) || ! isset( $body['offers'] ) ) return false; $offers = $body['offers']; foreach ( $offers as &$offer ) { foreach ( $offer as $offer_key => $value ) { if ( 'packages' == $offer_key ) $offer['packages'] = (object) array_intersect_key( array_map( 'esc_url', $offer['packages'] ), array_fill_keys( array( 'full', 'no_content', 'new_bundled', 'partial', 'rollback' ), '' ) ); elseif ( 'download' == $offer_key ) $offer['download'] = esc_url( $value ); else $offer[ $offer_key ] = esc_html( $value ); } $offer = (object) array_intersect_key( $offer, array_fill_keys( array( 'response', 'download', 'locale', 'packages', 'current', 'version', 'php_version', 'mysql_version', 'new_bundled', 'partial_version', 'notify_email', 'support_email' ), '' ) ); } $updates = new stdClass(); $updates->updates = $offers; $updates->last_checked = time(); $updates->version_checked = $wp_version; if ( isset( $body['translations'] ) ) $updates->translations = $body['translations']; set_site_transient( 'update_core', $updates ); if ( ! empty( $body['ttl'] ) ) { $ttl = (int) $body['ttl']; if ( $ttl && ( time() + $ttl < wp_next_scheduled( 'wp_version_check' ) ) ) { // Queue an event to re-run the update check in $ttl seconds. wp_schedule_single_event( time() + $ttl, 'wp_version_check' ); } } // Trigger a background updates check if running non-interactively, and we weren't called from the update handler. if ( defined( 'DOING_CRON' ) && DOING_CRON && ! doing_action( 'wp_maybe_auto_update' ) ) { do_action( 'wp_maybe_auto_update' ); } } /** * Check plugin versions against the latest versions hosted on WordPress.org. * * The WordPress version, PHP version, and Locale is sent along with a list of * all plugins installed. Checks against the WordPress server at * api.wordpress.org. Will only check if WordPress isn't installing. * * @since 2.3.0 * @uses $wp_version Used to notify the WordPress version. * * @param array $extra_stats Extra statistics to report to the WordPress.org API. * @return mixed Returns null if update is unsupported. Returns false if check is too soon. */ function wp_update_plugins( $extra_stats = array() ) { include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version if ( defined('WP_INSTALLING') ) return false; // If running blog-side, bail unless we've not checked in the last 12 hours if ( !function_exists( 'get_plugins' ) ) require_once( ABSPATH . 'wp-admin/includes/plugin.php' ); $plugins = get_plugins(); $translations = wp_get_installed_translations( 'plugins' ); $active = get_option( 'active_plugins', array() ); $current = get_site_transient( 'update_plugins' ); if ( ! is_object($current) ) $current = new stdClass; $new_option = new stdClass; $new_option->last_checked = time(); // Check for update on a different schedule, depending on the page. switch ( current_filter() ) { case 'upgrader_process_complete' : $timeout = 0; break; case 'load-update-core.php' : $timeout = MINUTE_IN_SECONDS; break; case 'load-plugins.php' : case 'load-update.php' : $timeout = HOUR_IN_SECONDS; break; default : if ( defined( 'DOING_CRON' ) && DOING_CRON ) { $timeout = 0; } else { $timeout = 12 * HOUR_IN_SECONDS; } } $time_not_changed = isset( $current->last_checked ) && $timeout > ( time() - $current->last_checked ); if ( $time_not_changed && ! $extra_stats ) { $plugin_changed = false; foreach ( $plugins as $file => $p ) { $new_option->checked[ $file ] = $p['Version']; if ( !isset( $current->checked[ $file ] ) || strval($current->checked[ $file ]) !== strval($p['Version']) ) $plugin_changed = true; } if ( isset ( $current->response ) && is_array( $current->response ) ) { foreach ( $current->response as $plugin_file => $update_details ) { if ( ! isset($plugins[ $plugin_file ]) ) { $plugin_changed = true; break; } } } // Bail if we've checked recently and if nothing has changed if ( ! $plugin_changed ) return false; } // Update last_checked for current to prevent multiple blocking requests if request hangs $current->last_checked = time(); set_site_transient( 'update_plugins', $current ); $to_send = compact( 'plugins', 'active' ); $locales = array( get_locale() ); /** * Filter the locales requested for plugin translations. * * @since 3.7.0 * * @param array $locales Plugin locale. Default is current locale of the site. */ $locales = apply_filters( 'plugins_update_check_locales', $locales ); if ( defined( 'DOING_CRON' ) && DOING_CRON ) { $timeout = 30; } else { // Three seconds, plus one extra second for every 10 plugins $timeout = 3 + (int) ( count( $plugins ) / 10 ); } $options = array( 'timeout' => $timeout, 'body' => array( 'plugins' => json_encode( $to_send ), 'translations' => json_encode( $translations ), 'locale' => json_encode( $locales ), 'all' => json_encode( true ), ), 'user-agent' => 'WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' ) ); if ( $extra_stats ) { $options['body']['update_stats'] = json_encode( $extra_stats ); } $url = $http_url = 'http://api.wordpress.org/plugins/update-check/1.1/'; if ( $ssl = wp_http_supports( array( 'ssl' ) ) ) $url = set_url_scheme( $url, 'https' ); $raw_response = wp_remote_post( $url, $options ); if ( $ssl && is_wp_error( $raw_response ) ) { trigger_error( __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server’s configuration. If you continue to have problems, please try the support forums.' ) . ' ' . __( '(WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.)' ), headers_sent() || WP_DEBUG ? E_USER_WARNING : E_USER_NOTICE ); $raw_response = wp_remote_post( $http_url, $options ); } if ( is_wp_error( $raw_response ) || 200 != wp_remote_retrieve_response_code( $raw_response ) ) return false; $response = json_decode( wp_remote_retrieve_body( $raw_response ), true ); foreach ( $response['plugins'] as &$plugin ) { $plugin = (object) $plugin; } unset( $plugin ); foreach ( $response['no_update'] as &$plugin ) { $plugin = (object) $plugin; } unset( $plugin ); if ( is_array( $response ) ) { $new_option->response = $response['plugins']; $new_option->translations = $response['translations']; // TODO: Perhaps better to store no_update in a separate transient with an expiry? $new_option->no_update = $response['no_update']; } else { $new_option->response = array(); $new_option->translations = array(); $new_option->no_update = array(); } set_site_transient( 'update_plugins', $new_option ); } /** * Check theme versions against the latest versions hosted on WordPress.org. * * A list of all themes installed in sent to WP. Checks against the * WordPress server at api.wordpress.org. Will only check if WordPress isn't * installing. * * @since 2.7.0 * @uses $wp_version Used to notify the WordPress version. * * @param array $extra_stats Extra statistics to report to the WordPress.org API. * @return mixed Returns null if update is unsupported. Returns false if check is too soon. */ function wp_update_themes( $extra_stats = array() ) { include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version if ( defined( 'WP_INSTALLING' ) ) return false; $installed_themes = wp_get_themes(); $translations = wp_get_installed_translations( 'themes' ); $last_update = get_site_transient( 'update_themes' ); if ( ! is_object($last_update) ) $last_update = new stdClass; $themes = $checked = $request = array(); // Put slug of current theme into request. $request['active'] = get_option( 'stylesheet' ); foreach ( $installed_themes as $theme ) { $checked[ $theme->get_stylesheet() ] = $theme->get('Version'); $themes[ $theme->get_stylesheet() ] = array( 'Name' => $theme->get('Name'), 'Title' => $theme->get('Name'), 'Version' => $theme->get('Version'), 'Author' => $theme->get('Author'), 'Author URI' => $theme->get('AuthorURI'), 'Template' => $theme->get_template(), 'Stylesheet' => $theme->get_stylesheet(), ); } // Check for update on a different schedule, depending on the page. switch ( current_filter() ) { case 'upgrader_process_complete' : $timeout = 0; break; case 'load-update-core.php' : $timeout = MINUTE_IN_SECONDS; break; case 'load-themes.php' : case 'load-update.php' : $timeout = HOUR_IN_SECONDS; break; default : if ( defined( 'DOING_CRON' ) && DOING_CRON ) { $timeout = 0; } else { $timeout = 12 * HOUR_IN_SECONDS; } } $time_not_changed = isset( $last_update->last_checked ) && $timeout > ( time() - $last_update->last_checked ); if ( $time_not_changed && ! $extra_stats ) { $theme_changed = false; foreach ( $checked as $slug => $v ) { if ( !isset( $last_update->checked[ $slug ] ) || strval($last_update->checked[ $slug ]) !== strval($v) ) $theme_changed = true; } if ( isset ( $last_update->response ) && is_array( $last_update->response ) ) { foreach ( $last_update->response as $slug => $update_details ) { if ( ! isset($checked[ $slug ]) ) { $theme_changed = true; break; } } } // Bail if we've checked recently and if nothing has changed if ( ! $theme_changed ) return false; } // Update last_checked for current to prevent multiple blocking requests if request hangs $last_update->last_checked = time(); set_site_transient( 'update_themes', $last_update ); $request['themes'] = $themes; $locales = array( get_locale() ); /** * Filter the locales requested for theme translations. * * @since 3.7.0 * * @param array $locales Theme locale. Default is current locale of the site. */ $locales = apply_filters( 'themes_update_check_locales', $locales ); if ( defined( 'DOING_CRON' ) && DOING_CRON ) { $timeout = 30; } else { // Three seconds, plus one extra second for every 10 themes $timeout = 3 + (int) ( count( $themes ) / 10 ); } $options = array( 'timeout' => $timeout, 'body' => array( 'themes' => json_encode( $request ), 'translations' => json_encode( $translations ), 'locale' => json_encode( $locales ), ), 'user-agent' => 'WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' ) ); if ( $extra_stats ) { $options['body']['update_stats'] = json_encode( $extra_stats ); } $url = $http_url = 'http://api.wordpress.org/themes/update-check/1.1/'; if ( $ssl = wp_http_supports( array( 'ssl' ) ) ) $url = set_url_scheme( $url, 'https' ); $raw_response = wp_remote_post( $url, $options ); if ( $ssl && is_wp_error( $raw_response ) ) { trigger_error( __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server’s configuration. If you continue to have problems, please try the support forums.' ) . ' ' . __( '(WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.)' ), headers_sent() || WP_DEBUG ? E_USER_WARNING : E_USER_NOTICE ); $raw_response = wp_remote_post( $http_url, $options ); } if ( is_wp_error( $raw_response ) || 200 != wp_remote_retrieve_response_code( $raw_response ) ) return false; $new_update = new stdClass; $new_update->last_checked = time(); $new_update->checked = $checked; $response = json_decode( wp_remote_retrieve_body( $raw_response ), true ); if ( is_array( $response ) ) { $new_update->response = $response['themes']; $new_update->translations = $response['translations']; } set_site_transient( 'update_themes', $new_update ); } /** * Performs WordPress automatic background updates. * * @since 3.7.0 */ function wp_maybe_auto_update() { include_once( ABSPATH . '/wp-admin/includes/admin.php' ); include_once( ABSPATH . '/wp-admin/includes/class-wp-upgrader.php' ); $upgrader = new WP_Automatic_Updater; $upgrader->run(); } /** * Retrieves a list of all language updates available. * * @since 3.7.0 */ function wp_get_translation_updates() { $updates = array(); $transients = array( 'update_core' => 'core', 'update_plugins' => 'plugin', 'update_themes' => 'theme' ); foreach ( $transients as $transient => $type ) { $transient = get_site_transient( $transient ); if ( empty( $transient->translations ) ) continue; foreach ( $transient->translations as $translation ) { $updates[] = (object) $translation; } } return $updates; } /** * Collect counts and UI strings for available updates * * @since 3.3.0 * * @return array */ function wp_get_update_data() { $counts = array( 'plugins' => 0, 'themes' => 0, 'wordpress' => 0, 'translations' => 0 ); if ( $plugins = current_user_can( 'update_plugins' ) ) { $update_plugins = get_site_transient( 'update_plugins' ); if ( ! empty( $update_plugins->response ) ) $counts['plugins'] = count( $update_plugins->response ); } if ( $themes = current_user_can( 'update_themes' ) ) { $update_themes = get_site_transient( 'update_themes' ); if ( ! empty( $update_themes->response ) ) $counts['themes'] = count( $update_themes->response ); } if ( ( $core = current_user_can( 'update_core' ) ) && function_exists( 'get_core_updates' ) ) { $update_wordpress = get_core_updates( array('dismissed' => false) ); if ( ! empty( $update_wordpress ) && ! in_array( $update_wordpress[0]->response, array('development', 'latest') ) && current_user_can('update_core') ) $counts['wordpress'] = 1; } if ( ( $core || $plugins || $themes ) && wp_get_translation_updates() ) $counts['translations'] = 1; $counts['total'] = $counts['plugins'] + $counts['themes'] + $counts['wordpress'] + $counts['translations']; $titles = array(); if ( $counts['wordpress'] ) $titles['wordpress'] = sprintf( __( '%d WordPress Update'), $counts['wordpress'] ); if ( $counts['plugins'] ) $titles['plugins'] = sprintf( _n( '%d Plugin Update', '%d Plugin Updates', $counts['plugins'] ), $counts['plugins'] ); if ( $counts['themes'] ) $titles['themes'] = sprintf( _n( '%d Theme Update', '%d Theme Updates', $counts['themes'] ), $counts['themes'] ); if ( $counts['translations'] ) $titles['translations'] = __( 'Translation Updates' ); $update_title = $titles ? esc_attr( implode( ', ', $titles ) ) : ''; $update_data = array( 'counts' => $counts, 'title' => $update_title ); /** * Filter the returned array of update data for plugins, themes, and WordPress core. * * @since 3.5.0 * * @param array $update_data { * Fetched update data. * * @type array $counts An array of counts for available plugin, theme, and WordPress updates. * @type string $update_title Titles of available updates. * } * @param array $titles An array of update counts and UI strings for available updates. */ return apply_filters( 'wp_get_update_data', $update_data, $titles ); } function _maybe_update_core() { include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version $current = get_site_transient( 'update_core' ); if ( isset( $current->last_checked ) && 12 * HOUR_IN_SECONDS > ( time() - $current->last_checked ) && isset( $current->version_checked ) && $current->version_checked == $wp_version ) return; wp_version_check(); } /** * Check the last time plugins were run before checking plugin versions. * * This might have been backported to WordPress 2.6.1 for performance reasons. * This is used for the wp-admin to check only so often instead of every page * load. * * @since 2.7.0 * @access private */ function _maybe_update_plugins() { $current = get_site_transient( 'update_plugins' ); if ( isset( $current->last_checked ) && 12 * HOUR_IN_SECONDS > ( time() - $current->last_checked ) ) return; wp_update_plugins(); } /** * Check themes versions only after a duration of time. * * This is for performance reasons to make sure that on the theme version * checker is not run on every page load. * * @since 2.7.0 * @access private */ function _maybe_update_themes() { $current = get_site_transient( 'update_themes' ); if ( isset( $current->last_checked ) && 12 * HOUR_IN_SECONDS > ( time() - $current->last_checked ) ) return; wp_update_themes(); } /** * Schedule core, theme, and plugin update checks. * * @since 3.1.0 */ function wp_schedule_update_checks() { if ( !wp_next_scheduled('wp_version_check') && !defined('WP_INSTALLING') ) wp_schedule_event(time(), 'twicedaily', 'wp_version_check'); if ( !wp_next_scheduled('wp_update_plugins') && !defined('WP_INSTALLING') ) wp_schedule_event(time(), 'twicedaily', 'wp_update_plugins'); if ( !wp_next_scheduled('wp_update_themes') && !defined('WP_INSTALLING') ) wp_schedule_event(time(), 'twicedaily', 'wp_update_themes'); if ( ( wp_next_scheduled( 'wp_maybe_auto_update' ) > ( time() + HOUR_IN_SECONDS ) ) && ! defined('WP_INSTALLING') ) wp_clear_scheduled_hook( 'wp_maybe_auto_update' ); } if ( ( ! is_main_site() && ! is_network_admin() ) || ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) return; add_action( 'admin_init', '_maybe_update_core' ); add_action( 'wp_version_check', 'wp_version_check' ); add_action( 'upgrader_process_complete', 'wp_version_check', 10, 0 ); add_action( 'load-plugins.php', 'wp_update_plugins' ); add_action( 'load-update.php', 'wp_update_plugins' ); add_action( 'load-update-core.php', 'wp_update_plugins' ); add_action( 'admin_init', '_maybe_update_plugins' ); add_action( 'wp_update_plugins', 'wp_update_plugins' ); add_action( 'upgrader_process_complete', 'wp_update_plugins', 10, 0 ); add_action( 'load-themes.php', 'wp_update_themes' ); add_action( 'load-update.php', 'wp_update_themes' ); add_action( 'load-update-core.php', 'wp_update_themes' ); add_action( 'admin_init', '_maybe_update_themes' ); add_action( 'wp_update_themes', 'wp_update_themes' ); add_action( 'upgrader_process_complete', 'wp_update_themes', 10, 0 ); add_action( 'wp_maybe_auto_update', 'wp_maybe_auto_update' ); add_action('init', 'wp_schedule_update_checks'); Violencia en Medio Oriente desata debate en China sobre democracia y estabilidadSesiónDeControl.com
Arrow

China debate sobre Oriente Medio


0
Global Voices

Este artículo se publicó originalmente en Global Voices, un portal que busca agrupar, conservar y amplificar la conversación global en línea arrojando luz a los lugares y gente que otros medios de comunicación a menudo ignoran. Trabajamos para desarrollar herramientas, instituciones y relaciones que ayuden a todas las voces, en todas partes, a ser oídas.


Escrito el 11 de octubre de 2013 a las 17:05 | Clasificado en China

Muchos chinos han visto en la violencia en Egipto y Siria ecos de su pasado. La censura, una vez más, ha tratado de anular los debates en la red.

Una foto de la plaza Tahrir de Egipto, eliminada de Sina Weibo (Freeweibo).
Una foto de la plaza Tahrir de Egipto, eliminada de Sina Weibo (Freeweibo).

Los meses recientes han sido agitados para el Medio Oriente: fuertes represalias para los manifestantes en Egipto y un escenario al estilo de Rashomón, donde el gobierno de Siria y sus rebeldes se han acusado mutualmente de uso de armas químicas, por nombrar solamente alguos casos. La gran distancia entre esta región y China no ha disminuido el interés de los cibernautas chinos. Esto no solo se debe al preocupante número de fallecidos, sino porque las recientes protestas en las calles egipcias y la violencia en Siria resuenan en incidentes de la historia de China y con varios cambios sociales actualmente en marcha en el país asiático.

En el caso de Egipto, los reportes señalaron que los enfrentamientos entre el gobierno militar y los seguidores del presidente derrocado Mohamed Morsi llegaron a sangre y violencia el 14 de agosto, día en que las tropas asesinaron en El Cairo al menos a 638 personas e hirieron a más de 4.000. Aunque algunos estimaron el número de muertos de ese día en miles, la cifra exacta es desconocida después de que el Ministerio de Salud de Egipto dejara de actualizarla el 17 de agosto “debido al alto número de muertes”.

Una semana después del sangriento choque egipcio, el “fantasma de la guerra de armas químicas” tocó las puertas de Siria, sorprendiendo al mundo tanto como la violencia en Egipto. De acuerdo con Ban Ki-moon, Secretario General de las Naciones Unidas, el uso de veneno ha causado más de 1.400 muertes, con 5.000 personas afectadas a través del contacto con la sustancia química.

Ambas catástrofes contaron con cobertura de medios en China y, en varios momentos, se convirtieron en los temas más populares en Sina Weibo, el Twitter de China. Aunque los dos eventos tuvieron semejanzas, al involucrar muertes civiles innecesarias y luchas de larga data por el poder, los cibernautas chinos destacaron diferentes aspectos de ambos temas.

En el caso de Siria, donde hay más luchas y negociaciones entre los poderes mundiales, los internautas chinos analizaron la política exterior de Estados Unidos, Rusia y China. China se ha opuesto por mucho tiempo a intervención extranjera alguna en el conflicto sirio. Bromas como “¿Putin ha traicionado al Presidente Xi?” y “es muy difícil para China el papel de la amante” se hicieron virales cuando Rusia y Estados Unidos anunciaron un acuerdo sobre Siria.

Sin embargo, los cibernautas chinos se inclinaron más a hacer paralelos entre el conflicto de Egipto y temas internos en China. La razón plausible: la violencia del estado egipcio contra los manifestantes recuerda a algunos de la represión mortal realizada por el gobierno chino contra las protestas a favor de la democracia el 4 de junio de 1989, que, según el gobierno, resultaron en 241 muertos y 7.000 heridos. Algunas organizaciones estiman que la tasa de mortalidad puede ser tan elevada como 2.000 o 3.000. Algunos artículos e internautas chinos preocupados se refirieron al incidente como “La plaza Tiananmén de Egipto”.

Captura de pantalla del video Youku sobre la violencia del Estado en Egipto. Un hombre desarmado intenta bloquear a un tanque militar.

En Youku, una plataforma de vídeos compartidos similar a YouTube, un vídeo de noticias que mostró a una persona joven, desarmada y de pie, bloqueando el camino de un tanque militar, ha recibido más de diez mil visitas. El usuario @qjy1 dejó un mensaje indirecto:

Cosas similares pasan todo el tiempo, aunque terminen con resultados distintos

Otras referencias sutiles fueron más claras, tales como el comentario “8964” del usuario “lonely maple tree” (@孤寂的枫), en referencia al año, mes y día de la protesta de Tiananmén.

Dicha sutileza es obligatoria: palabras como “Masacre de Tiananmén” (天安门大屠杀), “revuelta de Tiananmén” e “incidente del 4 de junio” (六四事件) son palabras delicadas. Es decir, el contenido que discuta o mencione esta frase puede ser borrado y, en algunos casos, a sus autores se les puede “invitar a tomar té” – un eufemismo para ser convocado por las autoridades chinas y conminado a dejar de publicar esa clase de contenido político.

Frente a la apretada censura, los internautas chinos han desarrollado un sistema de palabras en clave y referencias indirectas para evitar filtros a sus contenidos. Adoptar la estrategia de la sutileza fue la respuesta de las personas cuando Sina Weibo eliminó frases tan explícitas como “La Plaza Tiananmén de Egipto”.

El usuario @MrDominic subió una foto de un tanque militar y la describió con palabras clave: “Egipto, protesta, retiro de la escena, tanque”. El usuario Great person fatty Kim fallen from heaven (@天降伟人金胖子) contestó sarcásticamente:

¿Egipto buscó consejos de China sobre el empleo de tanques?

Otro internauta, Lin Kailong (@林凯隆), ofreció consejos sarcásticos a la gente de Egipto:

Dentro de algunos años, Egipto se convertirá en un país feliz y su gente vivirá y trabajará en paz y armonía. Bueno, hemos pasado por eso y hablo desde mi vivencia.

Algunos, sin embargo, señalan que el paralelismo no es perfecto. A diferencia de Egipto, donde algunos activistas a favor de Morsi asumieron la violencia durante la protesta del 14 de agosto, los chinos a favor de la democracia de la Plaza Tiananmén se sentaron tranquilamente en protesta y, entre ellos, algunos realizaron huelgas de hambre. Aunque los críticos analizaron las diferencias subyacentes entre las dos protestas, los internautas de China parecieron más preocupados por las discrepancias en la comunidad internacional sobre el despeje respectivo de las plazas Tiananmén y Tarhir. Lala Lizard (@赖赖_Lizard) escribió en Sina Weibo:

…el incidente que pasó hace 24 años fue llamada represión autoritaria mientras que la egipcia la llamaron democracia [qué difícil]. Ridícula rectitud política.

La definición del incidente de Tiananmén como una “masacre” tuvó como resultado consecuencias inesperadas para el gobierno de China. Inmediatamente después de que el líder chino Deng Xiaoping ordenara dispersar las protestas, China recibió condenas internacionales, sanciones económicas y aislamiento diplomático y, finalmente, le costó su candidatura para organizar las Olimpíadas de 2000. En contraste, aunque los líderes mundiales han condenado unánimamente a los generales de Egipto, no hay señal de castigos similares a los de China.

Los usuarios de Weibo se decepcionaron por esto. Lin’s Babe (@林家贝贝) publicó:

Es muy extraño. ¿Por qué la comunidad internacional está tranquila cuando las tropas egipcias dispararon tan rápidamente a las muchedumbres? La reacción es drásticamente diferente a lo que ocurrió en China hace 24 años. A veces esa doble moral me duele.

No todas las personas se han quedado en el pasado. Varios asumieron la situación de Egipto y el Medio Oriente como un recordatorio de incertidumbres sociales existentes en China.

Aunque abundó la simpatía por los civiles en el Medio Oriente por parte de la comunidad de internet en China, algunos cibernautas expresaron alivio en que su país no tenga que enfrentar tal inestabilidad. Algunos fueron más allá y ven a la violencia sangrienta como una advertencia hacia quienes llaman a la democracia y al cambio social.

El usuario Shaosong (@韶松) se burló:

¡Tan solo vean a Egipto! No quiero que China se convierta en eso. Espero que los intelectuales puedan usar sus conciencias para pensar sobre lo que necesitan de verdad las personas ordinarias de este país.

De acuerdo con Chinese medical doctor Qui Yen1 @中医秋燕饵 :

Hay muchos lugares cuyas situaciones son peores a la China. Solo vayan a Siria, Egipto o México. Puedes tener una pistola apuntándote en cualquier momento -es un sentimiento de vivir con confusión, preocupación en la que una vida humana no es comparable ni a la de un perro. Pero, seguramente para los “iluminados”, la vida no es tan valiosa como lo es el sistema de Occidente; mientras el sistema esté ahí, cualquier cosa -pobreza, tráfico de drogas- sería aceptable.

Algunos fueron más directos, como Travel in a Time of Chaos (@风云岁月旅程),

¡Abajo con los “neoliberales” de China que propagan “valores universales”!

El señor Wang Xiaoshi, que se hizo famoso -o tristemente célebre- por escribir un ensayo titulado “Si China llega al conflicto, será más patético que la Unión Soviética”, también se unió al debate. Resaltó:

Los intelectuales explican al constitucionalismo -una palabra equivalente a valores universales- como “el Estado de Derecho”, para aumentar la legitimidad de este argumento. Pero según personas como He Weifang (un reconocido profesor de derecho), el constitucionalismo significa el derrocamiento de la constitución socialista y su sustitución por una de corte occidental que llama a “(cambios) en el sistema de partidos, propiedad privada, independencia del poder judicial, libertad de prensa y neutralidad militar (el Partido Comunista controla actualmente a las fuerzas militares)”. ¡Pero miren a Egipto! ¿No ha mostrado cuán ridículos son los llamados de los constitucionalistas?

Algunos fueron menos estridentes que Wang, argumentando que no fue la democracia lo que causó los problemas de Egipto y el Medio Oriente en general, sino una democracia con poco desarrollo.

El usuario Changjiang livecast (@长江直播) ofreció “algunas causas fundamentales de los problemas en Siria”:

En primer lugar, el grupo dirigido por Assad mantiene un régimen autocrático, incorporando al sector militar en su propio partido y controlando a la burocracia. En segundo lugar, niegan al constitucionalismo, reemplazando al Estado de Derecho por el mando a través del poder. Tercero, reprimen violentamente a civiles y disidentes. Cuarto, los recursos nacionales son exclusivamente controlados por la familia Assad, que han causado la repartición injusta de los beneficios. Quinto, los simpatizantes de Assad están presentes en todos los niveles de la sociedad, limitando la libertad de expresión de la gente. Sexto, ellos regulan y suprimen toda expresión.

Después de comparar diversos países y regiones, Reformer Liu Shengjun (@刘胜军改革) señaló:

(La situación de) Corea del Norte nos dice que una nación sin reformas es una nación sin esperanza; Túez nos dice que es peligroso rechazar universalmente a las reformas; Egipto, cuando las reformas se tardan demasiado, significa tragedia para los políticos del país; Siria, que un gobierno que no logra adaptarse a los cambios de los tiempos es un desastre para su pueblo; Taiwán, que modificaciones en el momento adecuado son beneficiosos tanto para el gobierno como para sus ciudadanos y Vietnam, que los cambios graduales pueden funcionar.

Liu Yu, profesor en la prestigiosa Universidad Tsinghua de China y un respetado pensador, concluyó:

La democratización no es una cura absoluta. Tampoco sería un camino suave. Pero si alguien está tratando de comprobar la “superioridad” de la autocracia usando el ejemplo de Egipto, seguro sufre de ceguera selectiva.

En la opinión del profesor Liu, la violencia en Egipto debería constituir una lección para China:

Para países y personas que dudan a las puertas de la democratización, sería más significativo hacer preparativos y llenar vacíos sociales, económicos y de valores antes que llegue la ola democrática, para asegurar que el barco (del país) será lo suficientemente fuerte para sobrevivir ante ella.

Fuente: Violencia en Medio Oriente desata debate en China sobre democracia y estabilidad

Autor: Tea Leaf Nation

Traductora: Estefanía Salazar

Comparte tu punto de vista

XHTML: Puedes usar estas etiquetas: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>