Afficher et chercher les noms de lieux en inuktitut
Iqaluit, c'est aussi ᐃᖃᓗᐃᑦ. Une carte du Nunavut qui ne connaît que le nom anglais est fausse d'une façon que ses lecteurs remarquent tout de suite. Ce tutoriel couvre les trois endroits où un nom inuktitut apparaît : les libellés de la carte, le champ de recherche et le résultat reçu. Il se termine par ce que les données ne portent pas encore, parce que c'est ce qui décide si cela fonctionne pour les communautés qui vous importent.
import { Unmap, maplibregl } from "@unmap/sdk";
const unmap = new Unmap({
key: "um_live_...",
container: "map",
center: [-68.5145, 63.7467],
zoom: 12,
});
const [place] = await unmap.geocoder.search("ᐃᖃᓗᐃᑦ", { limit: 1 });
new maplibregl.Marker({ color: "#FF3E9A" })
.setLngLat([place.lng, place.lat])
.setPopup(new maplibregl.Popup().setText(place.name))
.addTo(unmap.map!);Le code est du TypeScript ordinaire. Pour le câblage React, Next.js, Vue ou Nuxt, partez des recettes par cadriciel.
La carte les affiche déjà
Il n'y a rien à activer. Le fond de carte porte les noms autochtones sur l'entité elle-même :
Iqaluit s'affiche Iqaluit avec ᐃᖃᓗᐃᑦ en dessous, quelle que soit la langue de libellé
demandée. Là où le nom syllabique est le nom principal, il s'affiche en premier et le nom anglais
en second. Les polices qui dessinent le syllabique sont livrées avec chaque style.
const unmap = new Unmap({ key, container: "map", center: [-68.5145, 63.7467], zoom: 12 });Ne réglez pas lang: "iu" sur la carte. L'inuktitut n'est pas une langue de libellé dans les
tuiles, et un code non pris en charge se rabat sur l'anglais, soit l'inverse de ce que vous
vouliez. Laissez lang à la langue d'interface du lecteur : la ligne syllabique suit de toute
façon.
Cherchez en syllabique
La recherche trouve les noms dans la langue où la requête est écrite. Une requête en syllabique trouve la communauté, pas un bâtiment qui porte le même nom.
const [place] = await unmap.geocoder.search("ᐃᖃᓗᐃᑦ", { limit: 1 });
console.log(place?.name); // "Iqaluit"
console.log(place?.names?.iu); // "ᐃᖃᓗᐃᑦ"La saisie semi-automatique reconnaît un préfixe syllabique pendant la frappe : ᐃᖃᓗ suggère
Iqaluit et ᐸᖕᓂ suggère Pangnirtung. Les anciens noms se cherchent aussi : Frobisher Bay trouve
toujours Iqaluit.
Affichez le nom inuktitut
lang: "iu" sur le géocodeur retourne le nom inuktitut dans name quand l'enregistrement en a
un, et se rabat sur le nom par défaut sinon.
const [here] = await unmap.geocoder.search("Iqaluit", { limit: 1, lang: "iu" });
console.log(here?.name); // "ᐃᖃᓗᐃᑦ"Si vous affichez les deux noms, lisez plutôt names.iu directement. Toutes les valeurs iu ne
sont pas écrites en syllabique : certains enregistrements y portent un nom inuktitut romanisé, et
un enregistrement dont la valeur iu est syllabique peut aussi porter la romanisation sous
iu-Latn. Vérifiez l'écriture avant de mettre une chaîne en forme comme du syllabique.
import type { GeocodeResult } from "@unmap/sdk";
// Syllabaire autochtone canadien unifié, U+1400 à U+167F.
const SYLLABICS = /[᐀-ᙿ]/;
function syllabicName(place: GeocodeResult): string | undefined {
const iu = place.names?.iu;
return iu && SYLLABICS.test(iu) ? iu : undefined;
}Le même dictionnaire names porte d'autres langues autochtones là où la source les publie, sous
leurs propres codes, comme cr pour le cri et oj pour l'ojibwé.
Là où cette approche se trompe
- La couverture est mince, et c'est une lacune de sources, pas de moteur. À l'échelle du pays,
le corpus porte un nom inuktitut pour relativement peu de communautés, et même au Nunavut
certaines n'en ont aucun : Cambridge Bay et Arviat reviennent avec un nom anglais seulement.
Une requête en syllabique pour un lieu sans nom
iun'a rien à trouver et ne retourne aucun résultat. Le moteur de recherche traite toutes les langues présentes ; ce qui manque, ce sont les données. - Les noms viennent de sources gouvernementales ouvertes. Ce sont la Base de données toponymiques du Canada (BDTC) de RNCan et Who's On First. Les noms gérés par les communautés ne sont pas importés : sous les principes OCAP® (PCAP®), c'est un partenariat, pas un téléchargement. Quand un enregistrement gagne un nom inuktitut dans une source, la reconstruction suivante du corpus l'indexe sans aucun changement de votre côté.
- Une requête en syllabique doit correspondre à la graphie de l'enregistrement. Une autre graphie du même nom peut ne rien retourner. Offrez le nom anglais comme seconde porte d'entrée.
- La carte et la recherche peuvent diverger. Les libellés du fond de carte viennent d'OpenStreetMap et la recherche vient du corpus fusionné : un libellé peut montrer un nom syllabique que la recherche ne porte pas, ou l'inverse.
Voir aussi
- API de géocodage pour
lang,nameset la recherche en syllabique. - API de cartes pour la façon dont les noms autochtones arrivent sur la carte.
- Couverture pour l'origine des noms.