cartes icon indicating copy to clipboard operation
cartes copied to clipboard

Tag "capital" avec plusieurs valeurs à traduire

Open kevinvennitti opened this issue 1 year ago • 1 comments

Le tag capital (ici) peut avoir une valeur admin_level-number :

screencapture-2024-08-10-12 34 29

Dans osmTagLabels.ts, faudrait-il passer le tagName à la fonction tagValueCorrespondance() afin de permettre une traduction spécifique des valeurs en fonction du tagName ?

kevinvennitti avatar Aug 10 '24 10:08 kevinvennitti

Pour info, j'ai modifié la fonction tagValueCorrespondance() dans mon fork pour avoir une liste des traductions spécifiques (lorsqu'une valeur peut se traduire différemment en fonction du contexte/tagName) et une liste de fonctions de formattage pour transformer la valeur d'une clé (par exemple : ajouter un suffixe, mieux afficher une liste, etc) :

export const tagValueCorrespondance = (key: string, tagName: string) => {
	const translations = {
		children: 'Enfant',
		only: 'Uniquement',
		subway: 'Métro',
		metro: 'Métro',
	}

	const specificTranslations = {
		'seamark:type': {
			'harbour': 'Port',
		},
		'type:RATP': {
			'rer': 'RER',
		}
	}

	const formats = {
		'route_ref': (v) => v.split(';').join(', '),
		'Population': (v) => v + ' habitants',
	}
	
	return formats[tagName] 
		? formats[tagName](key) 
		: (
			specificTranslations[tagName] 
			? (specificTranslations[tagName][key] ?? (translations[key] ?? key)) 
			: (translations[key] ?? key))
}

kevinvennitti avatar Aug 11 '24 08:08 kevinvennitti