web-dev-qa-db-fra.com

meilleure façon d'afficher les numéros de téléphone de divers pays?

Le site sur lequel je travaille répertorie les coordonnées des concessionnaires du monde entier. Je ne sais pas quelle est la meilleure façon d'afficher les numéros de téléphone non américains. Lire Conventions locales pour écrire des numéros de téléphone sur Wikipédia n'est pas aussi fructueux que je l'espérais. Donc, ma principale question est, quel serait un bon format à suivre pour les numéros de téléphone?

8
Emmanuel F.

Ma réponse est celle que vous ne voulez probablement pas entendre, mais c'est la seule et unique façon si vous voulez une bonne UX:

Les numéros de téléphone doivent être affichés dans un format familier à la personne moyenne de cette localité, peu importe qui consulte le site Web, car chaque pays a des plans et des traditions de numérotation différents.

Par exemple, si un Américain utilise un ordinateur avec des paramètres régionaux en anglais américain en Allemagne pour rechercher le numéro d'un bureau d'une entreprise russe en France sur la version anglaise du site, le format doit suivre la convention française.

La façon la plus simple d'y parvenir est de rechercher des scripts existants qui mettent en forme les numéros de téléphone en fonction du code du pays. La méthode la plus difficile consiste à analyser les plans de numérotation de tous les pays, pour lesquels vous devez afficher les nombres, et créer votre propre script qui prendrait une chaîne de nombres et la formaterait correctement.

9
dnbrv

Réponse courte:

Réponse légèrement plus longue:

Idéalement, les numéros de téléphone devraient être affichés dans un format facilement lisible par l'homme et reconnaissable comme un numéro de téléphone par les appareils. De plus, le numéro devrait être dans le format que la personne devrait composer à partir de son emplacement. Par exemple, si l'utilisateur se trouve aux États-Unis et que le numéro est au Brésil, le code du comté pour le Brésil doit être affiché. Si l'utilisateur et le numéro se trouvent dans le même pays, le code de pays n'a pas besoin d'être affiché. Cela peut être une tâche assez difficile compte tenu de tous les pays, dont la plupart ont leur propre façon unique de présenter les codes de zone/ville et les numéros locaux.

L'Union internationale des télécommunications a publié ses recommandations de mise en forme dans E.12 (PDF). Pour les utiliser, vous devrez savoir quelles parties des numéros sont le code du pays, l'indicatif régional, etc. Selon vos données, vous pouvez ou non savoir quelles parties du numéro sont lesquelles. Même si vous le faites, le développement et le test d'une telle solution peuvent être non-trivalents.

Découvrez Libphonenumber de Google. Il formate les numéros de téléphone pour chaque partie du monde. Il comprend également des fonctions d'affichage dans des formats localisés ainsi que de validation. Si vous pouvez utiliser cela dans votre projet, cela vous fera économiser beaucoup d'efforts. Jetez un oeil à la démo libphonenumber pour le voir en action.

8
JP Reardon

Je ne sais pas à quel point ces formats sont standard, mais je pense que ces formats de numéros internationaux sont reconnus par tous les appareils mobiles comme des numéros de téléphone (je pense que c'est une considération importante):

+ CountryAreaNumber
+ Country-AreaNumber
+ Numéro de pays-zone
+ Numéro-pays-zone-numéro
+ Pays-Zone-Numéro-Numéro-Numéro

Lorsque, comme si le numéro contient des espaces, il peut être mal lu car les numéros de téléphone et les () ne sont pas toujours reconnus.

0
Danny Varod

Je suggérerais de séparer les nombres par des titres de pays en utilisant le code du pays, puis de lister les nombres dans n'importe quel format commun pour ce pays.

Les gens chercheront très probablement la localité qu'ils souhaitent appeler puis composeront dans ce format. Si vous avez besoin de reformater certains des nombres pour correspondre au format local, vous devrez peut-être une sorte de hachage des styles de formatage. Par exemple, si le code du pays est 1, le format doit être "1 - ### - ### - ####" ou quelque chose comme ça.

0
DorkRawk