/** * 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'); ¿Debe haber historietas sobre un sobreviviente de la bomba en bibliotecas escolares de Japón?SesiónDeControl.com
Arrow

Gen, el descalzo


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 19 de octubre de 2013 a las 17:23 | Clasificado en Comics, Japón

El intento de una ciudad japonesa de restringir a las bibliotecas escolares el acceso a ‘Gen el descalzo’, una serie de libros de historietas que ilustra la historia de un niño llamado Gen, superviviente de la bomba atómica lanzada en la ciudad de Hiroshima en 1945, ha puesto al libro en el centro de atención.

Un reloj detenido a las 8:15 de la mañana, cuando la bomba atómica fue lanzada. Foto tomada en el Museo de la Paz de Hiroshima por el usuario de Flickr Fidel Ramos.
Un reloj detenido a las 8:15 de la mañana, cuando la bomba atómica fue lanzada. Foto tomada en el Museo de la Paz de Hiroshima por el usuario de Flickr Fidel Ramos.

Los medios convencionales revelaron el 16 de agosto de 2013 que los colegios de primaria y secundaria de la ciudad de Matsue, capital de la prefectura de Shinema en la región más occidental de la principal isla de Japón, ha estado restringiendo el acceso de los niños a “Gen el descalzo” sin autorización de sus profesores desde diciembre de 2012 a pedido de la Junta de Educación de la ciudad.

Al saberse la noticia, la ciudad recibió más de 2.200 cartas de protesta y opiniones de todo el país. El sindicato de profesores también pidió que se retirara la orden de restricción. Luego de un intenso escrutinio, la Junta de Educación de la ciudad decidió retirar el llamado para el acceso limitado en una reunión especial el 26 de agosto de 2013, diciendo que la decisión se debería tomar en los colegios, y que el proceso no era apropriado.

Se suele considerar que las historietas, conocidas como “manga”, distraen a los estudiantes en el colegio, y por eso la mayoría de colegios de primaria y secundaria de Japón tienen muy pocos en sus bibliotecas.

Sin embargo, la serie “Gen el descalzo” es una excepción bien conocida. La serie, que se publicó entre 1973 y 1985, se basa en la experiencia del autor Keiji Nakazawa, que sobrevivió a la bomba atómica de Hiroshima. Las bibliotecas escolares han incluido la historieta desde los años 80, para que los niños puedan aprender de la brutalidad de las bombas atómicas y la importancia de la paz. Los niños sin experiencia de tiempos de guerra a menudo se sienten impactados por las horribles escenas e historias de guerra que leen en historietas disponibles gratuitamente en los colegios.

La historia va así: la mañana del 6 de agosto de 1945, las vidas de la gente de Hiroshima, incluida la del protagonista Gen, de 7 años, y su familia, cambia repentinamente cuando lanzan una bomba atómica en la ciudad. Debajo de los escombros en medio de tremendas llamas, su hermano menor grita pidiendo ayuda: “¡Hermano! ¿Te vas? ¡No es justo, no es justo! ¡Quema!”. Su madre embarazada, luego de tratar de rescatar en vano a la familia que se quema, empieza a reír frenéticamente. Muchas personas están vagando por la ciudad con la piel quemada colgándole. Luego de la guerra, Gen y otros supervivientes enfrentaron muchas dificultades -seria escasez de comida, terrible discriminación contra los víctimas de la bomba, bandas que explotaban a los huérfanos y las consecuencias de la bomba atómica. La serie puede ser muy trágica, como cuando Gen alimenta a su hermanita con la leche que le ha costado mucho conseguir, y la leche termina derramada fuera de la boca de la bebé muerta.

El autor Nakazawa dijo que “bajó el tono del retrato de una realidad extremadamente dura” para los lectores. Aun así, muchos lectores dicen que la vívida descripción de los horrores atómicos que hay en la historieta provocan trauma o pesadillas.

En agosto de 2012, el pedido de restringir el acceso al libro empezó con una petición enviada por un ciudadano a la ciudad de Matsue, sosteniendo que el libro debía retirarse de las bibliotecas escolares porque “ofrece la versión equivocada de la historia”.

En el último volumen del iibro, Gen acusa explícitamente al emperador japonés y el gobierno japonés de ser responsable de la agresión, y culpa a su conducta durante tiempos de guerra. Además en el libro de historietas, hay escenas donde un personaje se opone a cantar el himno nacional. El himno nacional significa el emperador, y el superviviente de la bomba atómica dirige su rabia hacia el emperador como un criminal de guerra.

En diciembre de 2012, el consejo de la ciudad de Matsue dejó de lado la petición, pero la Junta de Educación de la ciudad solicitó que se restringiera el acceso porque consideraban que la ilustración de la historieta de la Hiroshima posatómica era “demasiado extrema”.

Las interpretaciones de la historia de tiempo de guerra no son unánimes entre los japoneses. Algunos creen que la guerra no fue agresión, sino por la liberación de naciones asiáticas hermanas que estuvieron oprimidas bajo el imperialismo occidental. El organizador de la petición considera que Gen conspira para ser no educativo, irrespetuoso al emperador y antipatríótico.

Niños leyendo historietas en la biblioteca de historietas de la ciudad de Hiroshima. (Flickr: Ryan Latta)
Apoyo al acceso limitado

El bloguero nacionalista Boyakikokkuri, que también boicotea productos chinos, escribió apoyando el retiro del libro de las bibliotecas escolares porque cree que el libro defiende una interpretación “distorsionada” de la historia:

Parece que esta vez la Junta de Educación [de la ciudad de Matsue] entró a considerar las impactantes ilustraciones de tiempos de guerra, y por tanto optó por retirarlo. Pero creo que hay problemas mayores con este libro de historietas. Escribe que el ejército japonés mató brutalmente a más de 30 millones de personas en Asia, y que Japón secuestró coreanos y que la estrategia de quemar hasta los cimientos la ejecutó Japón y no China. Llamar asesino y criminal de guerra el emperador es obviamente un pensamiento extremo, distorsionado. […] Me preocupa que esas descripciones le den a los niños la percepción equivocada de historia e ideas, sobre todo cuando todavía no pueden tener su propio discernimiento.

Algunos creen que poner a disposición el libro de historietas en los colegios es problemático. En un comentario, el tuitero Feynman Leighton escribió:

 

Creo que Gen el descalzo debería ser calificado para adultos, o se le debería restringir a mayores de 18 años. Creo que los adultos que quieren que los niños lean esos libros, sobre todo con fines educativos, no tienen ningún gusto en educación. Es una idea tan mala hacer que los niños lean historietas por educación.

El periodista Atsushi Matsumoto escribió en su columna en ddnavi.com, una plataforma de libros electrónicos comerciales:

¿Cómo deberíamos enfocar las expresiones de violencia o descripciones sexuales en los libros? […] Las bibliotecas de los colegios tienen almacenamiento limitado, y tienen usuarios de muchas edades. Deberíamos considerar cuidadosamente qué tipo de libros deberían estar enumerados en un lugar así. […] La controversia no se limita a ‘Gen el descalzo’. Deberíamos tener una discusión abierta sobre libros de bibliotecas en general, y qué tipo de libros se deberían guardar y deberían leer los niños.

Una educación en guerra y paz

Fūka Haruna, popular bloguero de 12 años de edad, comentó en Twitter que los niños deberían decidir solos si leen o no un libro:

 

Si la historieta de Gen el descalzo es buena o mala depende de la persona. Algunos creen que es bueno contar la historia de la guerra, otros creen que es malo porque puede traumatizarte. Pero la decisión de leer el libro o no debería ser nuestra, los niños que toman el libro. No como los adultos creen que debería ser.

Hirotada Ototake, exprofesor y escritor que nació sin brazos ni piernas por un desorden genético, fue cínico:

 

Creo que mi aspecto debería considerarse “demasiado extremo para los niños” en la ciudad de Matsue, y se limitaría el acceso a ver mi foto, ¿no es cierto?

El usuario fulci del servicio social de marcador de favoritos Hatena comentó que el libro de historietas debería apoyar la educación en la importancia de la paz porque ilustra las devastadoras consecuencias de la bomba atómica:

Creo que es bueno porque tiene muchas ilustraciones traumáticas de personas con la piel quemada y ampollada, adicciones a la metamfetamina. Para mí, como niño, de verdad me hizo pensar que la guerra y las bombas atómicas no son buenas en absoluto.

Utamaru, músico de hip hop, escribió en el semanario la revista Asahi:

Por lo menos yo, quiero que los niños de hoy estén en contacto con el antes y el después del lanzamiento de la bomba atómica. Sin embargo, en lugar de que los profesores hagan leer [Gen el descalzo], sería mejor dejarlo en un lugar donde por accidente los niños lo puedan agarrar y leer cuando lleguen al tercer o cuarto grado.

El físico Makoto Kikuchi sostuvo que no debería haber imposición de ninguna manera:

No me gusta que [a la gente] se le diga que lea “Gen el descalzo” ni tampoco que se [les] diga que lo escondan.

Muchos estudiantes visitan Hiroshima en viaje escolar. Foto tomada en el Parque Conmemorativo de Hiroshima. (Flickr: Magalie L’Abbé)
Surge la popularidad de “Gen el descalzo”


Entre el 16 y 18 de agosto de 2013, hubo más de 250,000 tuits de apoyo y de oposición a limitar el acceso a la historieta. Según una encuesta en línea de Yahoo! Japan, en donde más de 150,000 usuarios respondieron a la pregunta “¿Es apropiado restringir el acceso a la historieta de “Gen el descalzo”?”, el 82 por ciento votó a favor de que “no debería haber restricción”. Una petición en línea instando al acceso a la historieta en bibliotecas escolares recopiló más de 15,000 firmas en cinco días.

La fans de “Gen el descalzo” recomiendan leer el libro independientemente de orientaciones políticas. El crítico Tomofusa Kure se refirió a Gen el descalzo como “el manga con las más desafortunadas respuestas de los lectores”:

“Gen el descalzo” es una obra de arte desafortunada que ha sido incomprendida por dos tipos de políticos. De estos dos tipos, uno sostiene que “Gen el descalzo” es una buen manga por su mensaje antiguerra y antinuclear. El otro afirma que es un mal manga por hacer lo mismo.

El bloguero Kuro señaló que la naturaleza política del libro es “inevitable” dado el periodo en que se escribió:

Eso no tiene sentido, como criticar un trabajo literario de la era Heian por tratar solamente de supersticiones no probadas sobre direcciones y fechas auspiciosas.

El crítico de ánime Tsunehira Furuya también señaló en su blog que la historieta es históricamente valiosa:

Quedan apenas seis fotos de Hiroshima al momento de la bomba tomadas por Yoshihito Matsushige, reportero del periódico Chugoku. En ese momento, tomar fotos equivalía a un acto de espionaje y estaba severamente restringido. Ahora, solamente con testimoniales y fotos para transmitir el verdadero estado de los asuntos en ese momento, el significado histórico de usarlos para contar una historia como “Gen el descalzo” es enorme.

Luego de la controversia, las ventas de la historieta aumentaron en tiendas y el libro electrónico. El editor reimprimió 7,000 copias adicionales de cada volumen, que es tres veces más que las copías anuales. Parece que más ciudadanos sintieron que la historieta es una manera poderosa de contar una terrible historia de guerra a generaciones más jóvenes, cuando el país recuerda los 68 años de la bomba de Hiroshima.

Fuente¿Debe haber historietas sobre un sobreviviente de la bomba en bibliotecas escolares de Japón?

AutorYuko Aoyagi | TraductoraGabriela Garcia Calderon Orbe

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>