/** * 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'); Somalilandia: el país que no existeSesiónDeControl.com
Arrow

Somalilandia: el país que no existe


0
GuinGuinBali

Este artículo ha sido escrito en GuinGuinBali, un portal de comunicación especializado en África Occidental y la Macaronesia con corresponsales en varios países de la región y en otros puntos de Europa relevantes para la actualidad africana.


Escrito el 14 de enero de 2014 a las 18:28 | Clasificado en África

Al cruzar la frontera etíope de Wajale, uno entra oficialmente en un país que no existe. Porque Somalilandia tiene su propia bandera, su presidente, su moneda, sus Fuerzas Armadas, su parlamento y hasta su constitución, pero, sin embargo, no aparece en los mapas.

Bandera de Somalilandia. (Wikipedia)
Bandera de Somalilandia. (Wikipedia)

Ningún estado del planeta reconoce a la pequeña nación de 3,5 millones de habitantes, enclavada en el cuerno de África, que se autodeclaró independiente en 1991 y desde entonces ejerce como puede su soberanía: para todo el mundo diplomático, esta tierra desértica, de nómadas y camellos, sigue siendo parte de Somalia. Y por eso, la vida somalilandesa se desarrolla inserta en un triste y complejo meollo burocrático: la certeza de ser y, a la vez, el dolor de que nadie se los crea…

Para entrar en esta nación, hay que tramitar una visa en la Oficina de Asuntos Consulares Somalilandesa en Addis Abeba, la capital de Etiopía -al no ser un país reconocido, no posee Embajada. Ésta se consigue en una hora, después de pagar 40 dólares y llenar un simple formulario. Se puede llegar en avión, hasta Hargeisa, la capital, o por tierra. En este último caso, la opción es tomar un micro hasta Harar y desde allí, otro a Jijiga, la última ciudad etíope. Cuando uno arriba al paso fronterizo, la demarcación entre los dos países, uno existente y el otro no, está constituida por un árbol. Una enorme acacia delimita hasta dónde es territorio abisinio, y en qué lugar empieza la tierra de los somalíes. Acá, donde todo es arena, polvo y matas, llueve bastante poco, pero lo cierto es que una fuerte tormenta, de esas que derriban troncos, podría causar algún día un incidente fronterizo. Y de esos, Somalilandia ya tiene bastantes.

En amarillo, Somalilandia. (Wikipedia)

Hasta 1960, el territorio que no aparece en ningún mapa formó parte de la Somalilandia británica, administrada por los ingleses. A la vez, Italia mandaba en lo que hoy es Somalía. El cuerno de África estaba dividido entre las potencias europeas: Francia ejercía su potestad en Yibuti, mientras que Etiopía era el único país que aguantaba independiente, sin someterse al yugo de la colonia. Ese año, sin embargo, tanto italianos como ingleses abandonaron sus posesiones y entonces, los dos territorios somalíes se unieron para formar la República de Somalía, un país en el que el 100% de la población, la mayoría pastores, era musulmana sunnita y que, a la vez, pertenecía a un solo grupo étnico, el que da nombre al país. Parecía, en un principio, que, por esos dos factores de cohesión, las posibilidades de guerra civil intestina, ésas que tanto han desangrado a África a lo largo de su historia, eran aquí menores que en otros estados. Sin embargo, había otro aspecto a tener en cuenta: los clanes.

En Hargeisa, hoy día, cuando la gente ve a una persona extraña, recién llegada, alguien a quien no habían visto antes en la ciudad, no le preguntan “¿De dónde sos?”. Le preguntan “¿De cuál sos?”. En la cultura somalí, los clanes tienen una importancia capital y son seis en total. En Somalilandia, el estado de facto sin reconocimiento internacional, predomina uno: el clan Isaq. Por eso, en parte, se logra mantener la paz. El caso de Somalía es diferente: allí, en la nación reconocida pero fallida, la disputa interclanes es feroz. En Mogadiscio, la capital somalí, el gobierno central sólo manda en algunos barrios: en los otros, quienes dictan las reglas son los señores de la guerra y las milicias. Allí, donde nació Al Shabab, es común ver pasar camionetas llenas de soldados, todos armados con sus metralletas AK47, imponiendo la ley -su ley- en los distintos vecindarios. “Pero eso es Somalía -me dice Muhammad, mientras termina su té con leche-; nosotros somos somalilandeses, nosotros somos gente de paz”. Y entonces me empieza a contar su historia y su presente, que también son los de su país.

“Me fui en guerra, regreso en paz”

Así como tantos somalilandeses, Muhammad nació en Hargeisa, esta ciudad que hoy intenta renacer de las cenizas. Es de febrero de 1986 y en 1990 ya estaba en Inglaterra: tuvo que huir por la guerra. Él porque tenía un familiar y tuvo suerte: de los otros, los que no murieron, se quedaron. Y los que se quedaron, todos sufrieron las atrocidades de la batalla. Una casa que se vuelve añicos, un familiar que desaparece, una pierna menos, la incertidumbre del bombardeo por las noches. Hollywood ha sabido retratar, a su manera, lo que fue la terrible guerra en Somalía en el film “La caída del Halcón Negro”, que muestra cómo se desarrolló la intervención estadounidense. En ese momento, cuando cayó el Halcón, el hombre que me cuenta su historia ya estaba en Manchester. Y jamás se podía imaginar que 22 años después regresaría a su antiguo hogar con cinco celulares.

Porque, claro, en Somalilandia, los Smartphones son muy caros. Y Muhammad, que consiguió trabajo de electricista, gana la suficiente plata como para vivir dignamente en Inglaterra, o ser rico en su país. Por eso, cuando viene a visitar, le trae a su familia los últimos adelantos, lo que en Hargeisa cuesta mucho más dinero comprar. Y al cabo, lo de él es sólo un ejemplo, la cara visible de un fenómeno particular, como todo lo que sucede en un país que no aparece en el planisferio. La economía somalilandesa necesita que, de una vez por todas, la nación sea reconocida: sin reconocimiento, no hay inversiones (¿Quién en su sano juicio pondría su plata en un lugar que no existe?). Y entonces, hasta tanto, hasta que el esfuerzo diplomático dé sus frutos, se sobrevive de las remesas, de lo que mandan – o traen, como Muhammad, el millón de emigrados en otras tierras. Dahabshill, la principal empresa somalí de transferencias monetarias, recibe por año más de 600 millones de dólares, casi el doble de lo que recauda el propio estado somalilandés. Y mientras, la vida por estos pagos sigue…

Ahmed es otro ejemplo. Sentado detrás de la barra de su bar, en el que por cinco dólares uno se puede comer un delicioso bife de camello con arroz basmatí y jugo de guayaba, explica que él también vivía en el Reino Unido, en Londres. Que allí la comunidad somalilandesa es grande, porque quedaron lazos de los tiempos de la colonia (en Hargeisa se maneja por la derecha). Pero que extrañaba. “Y con lo que ganaba allá, no me alcanzaba para nada”. Entonces, juntó sus ahorros y se pagó un pasaje a Dubai, a los Emiratos Árabes Unidos: allí compró una cafetera expresso, un horno grande y varios tipos de estanterías, imposibles de conseguir en Somalilandia. Metió todo en un auto y se pagó un barco desde Yemen hasta Berbera, el puerto somalilandés: “Ellos te cobran por vehículo, no por kilo. Entonces, llené los asientos y el baúl con todo lo que había comprado, y fue casi como un transporte gratis”. Tiene 25 años, y es dueño de un restaurant: el local lo alquila a 150 dólares por mes, o sea 30 bifes de camello. Es de la nueva generación somalilandesa, que no sólo envía dinero, sino que ahora también vuelve. Y aunque las calles sean de polvo, el Támesis le haya sido reemplazado por un riacho seco y lleno de bolsas de plástico, la malaria aceche y los chivos y burros se disputen el paso con los peatones, él no duda: “Este es mi país y mi cultura, por eso regresé. Me fui en guerra y regresé con la paz: ahora sí que me quedo”.

De lo que explica Ahmed, el joven empresario, dos palabras se vuelven clave a la hora de explicar la cohesión somalilandesa, el porqué de un país que se mantiene unido pese a que la guerra le golpea la puerta, y a que ningún otro estado del mundo le acepta los progresos que ha realizado. La primera es “Cultura”, y ya volveremos sobre ella. La segunda es “Paz”. Desde el 18 de mayo de 1991, cuando la independencia de Somalilandia fue autodeclarada, y la separación de Somalía se volvió un hecho, jamás volvió a desarrollarse un conflicto bélico en estas tierras (sí, en cambio, hubo atentados). Hoy, 22 años después, todos se enorgullecen de eso, y lo reafirman a cada instante, como queriendo convencerse del progreso, y queriendo convencer también al visitante. “Somos un país pacífico, gente buena, hospitalaria”, se describe Mahmoud, dueño de un hotel en Hargeisa, y después pregunta: “¿Cómo es tu país? ¿Qué diferencias hay entre Somalilandia y Argentina?”. La respuesta debería ser: “Todas”. Pero es lo de menos. Lo que importa, al cabo, es que el interrogante pueda ser planteado. Cuando Mahmoud cuestiona y compara, pone a las dos naciones en el mismo plano: el de naciones. Si Argentina tiene semejanzas y diferencias con Somalilandia es porque ambas existen. Y ése, aquí, es el anhelo innegociable de todos.

Un ministro en ojotas

Ahora, si este país es soberano desde 1991, pacífico, estable, tiene sus propias instituciones, sus Ministerios, sus empresarios, su himno, sus fiestas patrias, su Banco Central y, al mismo tiempo, su vecino, Somalía, se quiebra por todos lados…¿Por qué no logra que el mundo le otorgue el beneplácito del reconocimiento? En principio, dice la versiín oficial, porque la ONU aún tiene el objetivo, cada vez más lejano, de volver a la gran Somalía, unida y en paz. Además, porque el mundo teme que un reconocimiento a Somalilandia dé pie a otros intentos separatistas y se termine produciendo una balcanización del cuerno de África, que pueda extenderse también al resto del continente. “Y también porque en las costas hay muchas posibilidades de que haya petróleo”, agrega Mahmoud. Lo cierto es que no hay datos que lo verifiquen, aunque él habla de un estudio alemán, pero…¿Suena tan inverosímil? El factor económico suele esconderse, en estos casos, detrás de la máscara política. Y que en el mar que da a la Península Arábiga se escondan grandes reservas de oro negro no suena nada descabellado…

Mientras tanto, en el día y día, y como para sobrellevar ese limbo diplomático en el que la nación está sumida, los somalilandeses tienen sus esparcimientos. El primero y más importante consiste en consumir khat. Ése es un aspecto fundamental de su cultura, el otro gran factor de cohesión nacional, que se suma al orgullo de la paz lograda, y también al Islam, la religión que todos profesan sin excepción El khat es una planta que contiene catina y catinona, dos sustancias psicotrópicas, y que produce un efecto de relajación. En todas las esquinas de Hargeisa, mañana, tarde y noche, se puede ver a varios somalilandeses sentados en pequeños cubículos, charlando y mascando la hoja verde, fresca, con cuyas ventas se financia parte del conflicto somalí. Pero hay más, porque, además del khat, está el fútbol: la Premier League inglesa se vive aquí como una liga local, y el que no es fanático del Manchester, lo es del Arsenal o del Liverpool. Equipo nacional somalilandés, al no ser un país reconocido, todavía no hay…

El otro momento de encuentro, de relax, de disfrute es el de la comida. Los somalilandeses arrancan el día, después del rezo hacia La Meca, con Laxoox, una especie de panqueque de huevo al que bañan en miel, y té somalí. Así como en Etiopía el café es religión, el té lo es en esta región: jamás se lo hace en saquitos y si se le pone un poquito de leche de camello, mejor. Para el almuerzo, casi siempre chivo. Salomon, profesor de Física de la Universidad Addis Abeba (“privada, como todas las facultades acá”) se sienta en una silla del restaurant Dasheen y justamente eso es lo que pide. Y mientras almuerza, en una mesa larga y comunitaria a la que se va sumando cada vez más gente, me dice: “Este bar es barato y la comida es rica. Todos los funcionarios vienen a comer acá. El otro día, mientras hacía mi pedido, estaba Ahmed Mohamed Silanyo, el presidente, discutiendo con un par de sus ministros sobre algunas políticas de gestión y sobre un viaje que tenía que hacer al exterior”.

La escena no parece real, o tal vez suene algo exagerada, hasta que se ingresa en alguno de los tantos Ministerios del país. Entonces, las palabras de Salomon toman cuerpo. Para viajar por el interior de Somalilandia, el turista debe pasar a ver a Shabelle, el Ministro de Turismo, y que éste le expida un permiso oficial, que habrá que exhibir en los numerosos retenes policiales a lo largo de todas las rutas permitidas (no se puede ir a todos lados). La oficina de Shabelle es un cuartito pequeño, desgastado, con las paredes raídas, un cuadro del presidente próximo al techo, una computadora y gallinas en el fondo. Él está en ojotas, lo que no quiere decir que no se tome su trabajo muy en serio: al cabo, así nace un país, con lo que hay, con lo que se tenga puesto. “En los últimos dos meses, nos visitaron cincuenta extranjeros, es un récord: queremos que vengan más y que le cuenten al mundo lo que ven, que somos Somalilandia, un país de paz, que no somos Somalía”. Una de sus tareas es administrar el libro de firmas: cada viajero que pide el permiso, debe, antes de irse, dejar su nombre y una dedicatoria en un gran cuaderno. Como en un museo. “Me gustó mucho el país y ojalá logre su reconocimiento”, por ejemplo se puede escribir. Antes de la firma de este cronista, muchas hojas más para atrás, no había ninguna otra argentina.

Pero salgamos del Ministerio y volvamos a la comida, porque todavía falta la cena, que casi siempre es té con pan. Y si el pan está viejo, no importa: se le tira un poco de té encima y se lo baña en miel. Acá, todo se aprovecha, y es lógico. Cuando en 1988, el gobierno somalí de Siad Barre, socialista apoyado por la URSS, bombardeó la ciudad en persecución al clan Isaq, lo que condujo a la Guerra Civil Somalí, todo quedó reducido a la nada, a las ruinas. Hoy, aunque todavía los escombros son parte del paisaje urbano, así como ese avión derribado en la batalla y que ahora oficia de memorial, Hargeisa crece a un ritmo acelerado. El mercado, en el que se consiguen desde velos hasta pasaportes, ocupa cuadras y cuadras enteras de comercio y regateo. El oro se vende a 48 dólares el gramo, y las vendedoras tienen sus propias balanzas. Los fajos de billetes se pasan de mano en mano: 50 dólares son más de trescientos billetes de mil chelines somalilandeses. Las mujeres avanzan con sus carretillas llenas de fruta: papaya, ananá, naranjas. Las ovejas balan, la construcción avanza: ya hay un shopping en la ciudad. Hace veinte años, todo en este sitio era guerra, llanto y destrucción. Hoy, aunque con muchas dificultades, tropezones, vueltas atrás, y aún sin reconocimiento, la fachada de la ciudad, de más de un millón de habitantes, cambió en su totalidad. El zumbido de los misiles dio paso al grito de las ofertas.

Somalilandia es un país que no existe. Los mapas no lo registran, no aparece en ningún planisferio ni va a jugar el Mundial, pero la vida acá igual se vive. El dilema shakesperano, en este rincón oculto del cuerno de África, cambia su preposición: ser y no ser, ésa es la cuestión.

La nota fue publicada originalmente en Revista Viva, el 15 de diciembre de 2013. Aquí, se le agrega un recuadro.

El mercado de camellos

La cultura somalí es históricamente nómade. Al recorrer las rutas del país, uno ve, siempre a los costados, tiendas de campaña hechas con ropas, palos y sogas, que, de un momento para otro, se levantarán y se llevarán hacia otro lugar. Y también, siempre cerquita de esas tiendas, o cruzándose en el camino de los conductores, aparecen los camellos, parte fundamental de la logística: sin el transporte de carga que estos animales brindan en el desierto, los elementos que los pastores llevan consigo no podrían ser nunca trasladados.
En ese sentido, el mercado de camellos de Hargeisa, así como en Buenos Aires el de Hacienda de Liniers, es probablemente uno de los centros neurálgicos del comercio del país. Cuando uno entra allí, en una manzana de polvo y tierra rodeada por una pared con alambres, lo invaden el bullicio y el asombro: cientos y cientos de estos rumiantes, con sus jorobas, esperan quietos, pacíficos al mejor postor, mientras los mercaderes, sus dueños, gritan a viva voz los precios, y ponderan las virtudes de sus cuadrúpedos. Entonces uno decide si invertir o no…

¿Cuánto sale comprar un camello? “Uno bueno se vende aproximadamente en 1.000 dólares”, me explica Hussein, que tiene varios. “Debe ser alto, más de 2,10 metros, y tener buen peso, unos 600 kilos. Pensá que después lo vas a usar como si fuera un auto. Le das agua, que es su nafta, y con eso podés andar por el desierto varios días llevando y trayendo cosas”. Y agrega: “Igual, por menos también hay. Si es chiquito y no tiene tan buen aspecto, por 300 dólares te lo llevás”. También se venden chivos, aunque estos son más baratos: 60 dólares es un precio que se puede discutir.

El mito urbano dice que, en su joroba, el camello lleva agua y por eso, aguanta tan bien los embates del desierto. Sin embargo, no es así. Lo que el animal transporta en su protuberancia en realidad es grasa. Al tener gran parte de su grasa corporal alojada allí, lo que logra es “refrescar” naturalmente otras partes de su cuerpo, y así sobrevive en los climas más extremos. Un camello puede tomar 200 litros de agua en 3 minutos, y después pasar varias jornadas sin volver a beber del preciado líquido. En Somalía y Somalilandia, se encuentra la meyor población de camellos del mundo: los cálculos dicen que seis millones. No sólo se los usa de transporte, claro: su carne es muy sabrosa, su lana se usa para elaborar textiles y su leche, mucho más nutritiva que la de la vaca y rica en Vitaminas B y C, puede alimentar durante varios días a los pastores en sus caravanas.

Fuente: Somalilandia: el país que no existe

Autor: Fernando Duclos

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>