27 de febrero, 2020

Google Maps y Malvinas: cómo garantizar que no aparezca Falkland Islands en los mapas que desarrolles

Google Maps es una herramienta ampliamente usada por desarrolladores de todo el mundo para mostrar sus mapas, pero tanta globalidad, a veces juega en contra de los intereses locales.

En el mundo existen cientos de territorios disputados entre diferentes países, algunos reclaman su independencia, mientras que en otros sus habitantes prefieren seguir dependiendo de una país lejano, pero un país «vecino» reclama su posesión, ya sea por proximidad, historia o ambas.

Por ejemplo, España tiene en disputa con Reino Unido y con Portugal todos estos territorios: Gibraltar, Ceuta, Melilla, Isla de Perejil, Peñón de Vélez de Gomera, Peñón de Alhucemas, Islas Chafarinas y Olivenza.

Guatemala le reclama a Belice la mitad de su territorio ¡medio país incluyendo su capital! Incluso a Belice, Honduras y también Guatemala, le reclaman una Isla al sur del país llamada Sapodilla Cayes.

Argentina y Reino Unido no son la excepción. Quienes vivimos en Argentina reclamamos la soberanía sobre las Islas Malvinas, Georgias del Sur y Sándwich del Sur, y los espacios marítimos circundantes.

Google Maps y muchos otros servicios como Mapbox y Open Street Maps, tienen lidiar contra la globalidad y decidir «cómo mostrar los nombres de ciudades, ríos y lugares de interés, para cada persona que accede a sus mapas. No sólo tiene que ver con reclamos de soberanía, por ejemplo: ¿Mostramos New York o Nueva York? ¿México, Mexico o Méjico? y otras más difíciles: ¿Alemania, Germany o Deutschland? ¿Sabías que «Alemania» en japonés se escribe así? ドイツ.

Frente a tal panorama, los servicios de mapas no sólo tienen que afrontar «cómo escribir en tal idioma», sino también considerar «cómo escribirlo teniendo en cuenta los reclamos de soberanía.

Como podrás ver aquí, Google Maps no le mostrará lo mismo a un argentino que a un español.

VAMOS AL CÓDIGO QUE ME ESTOY ABURRIENDO

La API de Google Maps tiene una documentación excelente, pero hay una sección un poco escondida: hablamos de la «localización» https://developers.google.com/maps/documentation/javascript/localization

Al cargar un mapa, el código típico de JavaScript que usamos es:

<script src="https://maps.googleapis.com/maps/api/js?callback=initMap"></script>

Al hacerlo así, Google decidirá cómo mostrar los nombres de las ciudades y territorios en disputa, según la configuración que tenga en su dispositivo la persona que esté navegando. También tendrá en cuenta desde qué país se está accediendo. Por eso algunos veremos Alemania y otras personas Deutschland, Germany o ドイツ.

En la imagen se puede ver el mismo mapa en cuatro configuraciones distintas: es_AR ; pt_BR ; ja_JP ; ar_SA

La clave está en agregar dos parámetros: language y region.

El parámetro language hace referencia al idioma en que se mostrarán los textos, mientras que region establece criterios para adecuarse a la política que esa región establezca.

Esta es la forma correcta de mostrar siempre Malvinas y no otra cosa:

https://maps.googleapis.com/maps/api/js?callback=initMap&language=es&region=AR

Es importante no confundir los parámetros, si a language le pasas «ar» ¡estarás pidiéndole que muestre los nombres en árabe! nada que ver con lo que queremos. También es importante considerar que «region» requiere en valor con mayúsculas y hace referencia al código internacional del país que regirá la política de nombres.

La única combinación que mostrará Islas Malvinas es language=es&region=AR cualquier otra combinación, mostrará otras cosas, por ejemplo:

language=en&region=AR → "Falkland Islands (Islas Malvinas)"
language=it&region=AR → "Isole Falkland (Malvine)"
language=pt&region=AR → "Ilhas Falkland (Ilhas Malvinas)"
language=pt&region=BR → "Ilhas Falkland (Ilhas Malvinas)"
language=es&region=ES → "Islas Falkland (Islas Malvinas)"
language=es&region=CL → "Islas Falkland (Islas Malvinas)"
language=es&region=UY → "Islas Falkland (Islas Malvinas)"

Aquí te dejo un ejemplo para que puedas jugar y cambiar los códigos de idioma y región https://playcode.io/504641

Lista de idiomas soportados por Google Maps https://developers.google.com/maps/faq#languagesupport

Códigos de países y regiones https://es.wikipedia.org/wiki/ISO_3166-1#C%C3%B3digos_oficialmente_asignados

Más información sobre los territorios en disputa en todo el mundo en http://metrocosm.com/disputed-territories-map.html

 

ÚLTIMOS ARTÍCULOS