Tri des options de sélection

Dans le cadre d'un formulaire, vous pouvez avoir une liste de termes dans un menu déroulant. Cet article répond à la question : Pourquoi ne sont-elles pas correctement triées lorsque je traduis les éléments de la liste ?

Réponse

Bien que de nombreux langages de programmation aient des périphériques tels que des menus déroulants qui ont la capacité de trier une liste d'éléments avant de les afficher dans le cadre de leur fonctionnalité, l'élément de sélection select n'a pas cette capacité. Il répertorie les éléments d' option dans l'ordre reçu. Il faut donc trier au préalable les options traduites avant de les présenter au client. Cela se fait soit manuellement, soit en utilisant un processus conçu par le développeur (comme l'utilisation d'une transformation XSLT).

Par exemple, disons que nous avons une liste déroulante pour les types d'animaux domestiques. Dans la liste, nous avons ce qui suit par ordre alphabétique:

<form .....>
    <select size="1" name="pet">
       <option value='cat'>chat</option>
       <option value='dog'>chien</option>
       <option value='mouse'>souris</option>
    </select>
...
...
</form>

Quand ceci est traduit en néerlandais, la liste devient:

<form .....>
    <select size="1" name="pet">
       <option value='cat'>kat</option>
       <option value='dog'>hond</option>
       <option value='mouse'>muis</option>
    </select>
...
...
</form>

Mais pour que l'ordre alphabétique néerlandais soit correct, nous devrons réorganiser la liste:

<form .....>
    <select size="1" name="pet">
       <option value='dog'>hond</option>
       <option value='cat'>kat</option>
       <option value='mouse'>muis</option>
    </select>
...
...
</form>

Ceci doit être fait pour chaque langue à afficher.

À propos

Notez que les paramètres des valeurs ne sont pas convertis dans les exemples ci-dessus. Cette séparation entre le matériel à afficher à l'utilisateur et les données à traiter à l'arrière-plan permet au développeur de conserver le même traitement à l'arrière-plan. Ils n'ont donc pas à changer ce qu'ils s'attendent à recevoir de l'utilisateur à chaque fois qu'une nouvelle langue est prise en charge.