web-dev-qa-db-fra.com

Puis-je reformater des noms de personnes obtenus à partir d'un seul champ de formulaire?

J'ai lu cette excellente question et ses réponses, sur la collecte de noms de personnes dans des formulaires.

La meilleure réponse (celle qui est acceptée de toute façon) semble être de suivre les conseils du W3C sur les noms personnels , qui est de rassembler le nom complet dans un seul champ, plutôt que d'utiliser un "prénom" séparé et champs "nom".

Ils décrivent également un autre champ pour demander à l'utilisateur "Comment devrions-nous vous appeler?" - ce qui, je pense, est une bonne idée et est utile pour envoyer des e-mails, afficher un message de bienvenue, etc.

Ce avec quoi je me bats, c'est - maintenant, comment puis-je prendre ces informations et laisser quelqu'un générer un rapport en utilisant un format de nom "Last, First"? Je voudrais mettre une liste déroulante pour sélectionner l'exécution du rapport avec un format de nom par défaut ou ce format alternatif, mais comment puis-je obtenir le format alternatif pour commencer?

Selon le document du W3C, je ne peux pas faire d'hypothèses sur le nombre d'espaces dans le nom complet, ou quelle "partie de nom" est considérée comme le nom de famille, etc. Donc, la seule chose que je peux trouver est d'ajouter encore un autre champ pour collecter cette version du nom auprès de l'utilisateur.

Je n'aime pas vraiment cette idée, car il pourrait être difficile de les guider pour les fournir réellement au format "Last, First". Je peux voir que de nombreux utilisateurs taperaient simplement la même chose dans les trois champs.

Il doit sûrement y avoir un moyen interactif de collecter ces données qui soit plus fiable? Peut-être juste un seul champ "nom complet" qui, une fois entré, utilise du javascript pour produire des valeurs dans les listes déroulantes des deux autres champs? De cette façon, l'utilisateur pourrait sélectionner le formulaire qu'il préfère. Mais je ne peux pas comprendre comment je pourrais remplir ces valeurs de manière fiable.

Peut-être existe-t-il une autre conception intuitive ou interactive qui pourrait aider?

[~ # ~] mise à jour [~ # ~]

Finalement, j'ai construit l'interface utilisateur de l'éditeur de noms comme suit:

Name Editor UI

Les options de la liste déroulante "Nom complet" sont calculées automatiquement à chaque pression de touche dans l'une des zones de texte. J'autorise les espaces dans l'une des zones de texte, de sorte que les comptes d'utilisateurs avec plusieurs noms ou noms de famille.

La seule validation que j'effectue est qu'au moins un caractère est entré dans l'un des deux champs. Cela signifie que le "nom complet" combiné comportera au moins un caractère.

Je combine essentiellement les champs donnés et nom de famille dans l'un ou l'autre ordre, avec ou sans espace. Ensuite, je réduis cela à des combinaisons uniques (au cas où elles n'auraient rien dans l'une des deux zones de texte, ou si leurs prénom et nom sont les mêmes) et coupe tous les espaces de début ou de fin. Ils peuvent donc choisir parmi 1, 2 ou 4 "noms complets".

Dans la plupart des applications, j'utilise uniquement le champ "nom complet". Mais lorsque cela est nécessaire pour le tri ou pour les rapports spéciaux, j'autorise les noms et noms de famille à être utilisés séparément.

Je pense que cela couvre toutes les bases? Ai-je manqué quelque chose?

9

La recommandation de l'article du W3C n'est pas de toujours collecter le nom complet via un seul champ, mais de:

demandez-vous si vous avez vraiment besoin d'avoir des champs séparés pour le prénom et le nom de famille.

C'est, je pense, la clé.

Si vous devez utiliser uniquement une partie du nom d'une personne, récupérez cette partie. Comme le montre clairement l'article du W3C (et celui que j'ai écrit ), les noms varient trop pour quiconque sauf un expert avec un beaucoup = de temps ( Graham Rhind peut-être ?) pour développer un algorithme pour les analyser.

Notez également qu'au lieu de "prénom" et "nom", vous devez utiliser le nom "donné" et "famille" (encore une fois, comme le fait le W3C). En effet, dans certaines cultures, le nom de famille vient en premier tandis que dans d'autres cultures, le nom de famille vient en dernier. "Étant donné" et "famille" évitent toute ambiguïté et confusion.

En résumé, les éléments suivants répondront aux besoins de chacun:

  • Prénom (s): [_ __ _ __ _ __ = _ __ _ __ _ __ _ __ _ __ _]
  • Nom de famille: [_ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _]

De nombreuses cultures n'ont pas de "prénom" et de "nom de famille" au sens occidental.

Si vous venez d'Amérique latine, il est probable que vous ayez deux noms de famille (un de chaque parent). Si vous venez de nombreux pays slaves, vous avez également un Patronymic pour compliquer le 'nom de famille'. Si vous êtes néerlandais (ou afrikaans), il y a de fortes chances que votre nom de famille soit un nom composé comme 'van den Bos' ou 'de Wet'. Si vous êtes chinois, votre nom de famille est le premier, votre nom de famille est le dernier et ils sont toujours utilisés ensemble.

Si vous devez trier par 'Last, first', cette exigence est déjà culturellement insensible . Vous ne pouvez pas bien résoudre ce problème sans demander beaucoup plus d'informations, sauf si vous travaillez avec un groupe très culturellement limité.

Le compromis que j'utiliserais serait de demander à quelqu'un de donner son:

  • Nom complet
  • Nom de famille tel qu'il serait utilisé pour le tri, mais vous devrez expliquer ce que vous entendez par là. Cela peut être donné dans de nombreuses variantes, vous devez donc être prêt à accepter la variété.

De là, vous pouvez déterminer ce qu'il faut utiliser comme prénom (s) en regardant la différence.


Je dois noter que très souvent, les gens qui sont d'autres cultures donnent déjà des noms alternatifs qui fonctionneront dans un système "Last, first". Il est donc possible qu'ils ne donnent pas leur nom de famille complet ou leur prénom pour éviter des problèmes en essayant de les expliquer.

5
JohnGB