web-dev-qa-db-fra.com

Dois-je limiter les caractères saisissables dans une application multiplateforme internationalisée?

Supposons que je publie une application mobile et un site Web et que je les mette à la disposition des utilisateurs anglophones et non anglophones.

Nous prenons déjà en charge le codage UTF8 dans toute notre pile technique. Cependant, autoriser la saisie par l'utilisateur de la gamme complète de caractères exprimables en UTF8 est généralement une bonne politique? Et sinon, comment les gens

En particulier:

  • noms d'utilisateur
  • mots de passe
  • commentaires générés par l'utilisateur

peut être fourni en tant que caractères d'entrée sur un appareil (via un clavier à écran tactile) et il est nécessaire de restituer les mêmes caractères sur un autre appareil.

Par exemple,

  • Un message sur le forum. Voici le caractère Skull and Crossbones "☠" (UTF 9760). Certains claviers tiers Android fournissent un moyen facile de les saisir, mais vous pouvez les trouver sous forme de boîte carrée dans votre navigateur. En général, nous pouvons souhaiter utiliser différentes polices sur différents appareils (par exemple différentes polices pour les périphériques à haute résolution par rapport aux périphériques à faible résolution) et nous courons donc le risque que l'utilisateur puisse librement saisir du texte sur un périphérique (et le voir correctement rendu), et que le même caractère ne peut pas être rendu sur un autre périphérique dans l'autre font (= UX fail). Il semble donc judicieux d'empêcher la saisie de tels caractères par le biais de la validation du formulaire. Dans l'affirmative, comment le jeu de caractères acceptables est-il généralement décidé? (Par exemple, existe-t-il une grande liste des caractères disponibles dans les polices Web sécurisées).

  • Dans le cas de la création d'un nouveau mot de passe, le clavier Android Android invite les gens à saisir le caractère ¥ (yen). Cependant, si nous leur permettions de le faire, la plupart des utilisateurs américains seraient bloqués lorsque ils viennent se connecter au même service sur un PC dont le clavier n'a aucun moyen évident d'entrer ¥. Oops - UX échoue.

J'ai vécu ma vie en ASCII. Quelles sont les meilleures pratiques ici?

2
user48956

Vous ne devriez jamais le limiter, sauf si vous avez une très bonne raison. Les utilisateurs peuvent parfois innover de manière insoupçonnée (on dit que les sachets de thé étaient à tester, et les consommateurs ont commencé à le demander de cette façon).

  • Commentaires: Un gros NON , sauf si votre système a une utilisation très étrange. Vous pourriez vouloir parler d'une personne grecque (dites Socrate: Σωκράτης) en espagnol (Sócrates). Ou vous pouvez écrire une formule: ∃n∈ℕ P (n, n, 25)
    • Plus tard, vous pouvez appliquer une restriction si quelque chose devient ennuyeux (les utilisateurs abusent de certaines fonctionnalités Unicode).
  • Mot de passe : Le seul inconvénient que je pouvais imaginer est que l'utilisateur ne pouvait pas répéter le mot de passe, dans ce cas, il pouvait réinitialiser le mot de passe par courrier.

  • Ou vous pouvez fournir un clavier à l'écran . Cela présente certains avantages, comme:

  • Noms d'utilisateurs : Ici, vous pouvez avoir de bonnes raisons (les utilisateurs imitant les noms des autres). Vous pouvez donc implémenter plusieurs types de restrictions:

    • Seulement latin : mauvais pour les utilisateurs, facile à faire. Bon pour la compatibilité (pour utiliser le nom d'utilisateur comme adresse e-mail, comme Google et GMail).
    • Une seule langue : Vous devriez avoir une liste de tous les caractères autorisés pour chaque langue prise en charge.
    • Évitez les collisions par similitude : c'est mieux pour les utilisateurs car vous pourriez aussi mettre en œuvre des similitudes sonores (ralf vs ralph), des similitudes visuelles (RALPH vs RAL9H) et la réorganisation des caractères (ralf vs rlaf). Mais c'est une tâche complexe.
1
ESL

Je ne pense pas que vous compreniez très bien l’utilité de l’UTF-8. C'est juste un encodage qui vous permet de stocker toutes sortes de caractères. Le choix de l'encodage est plus une décision technique et puisque vous créez une application multilingue et que vous avez la possibilité de choisir UTF-8, cela ressemble à l'encodage dont vous avez besoin.

C'est votre application qui décide des éléments à afficher ou à accepter de vos utilisateurs, et non une base de données ou un codage lié au système de fichiers. Il n'est pas facile de changer un système de fichiers, mais le comportement d'une application peut changer régulièrement, donc UTF-8 peut être le meilleur choix ici pour éviter toute limitation ou difficulté plus tard.

Utilisez la validation au niveau de l'application et des filtres pour contrôler les données entre l'utilisateur et l'application.

0
jazZRo