Page d'accueil>Lié à la programmation>Autre code source

i18n
Type : Object Par défaut : {}
Autoriser la localisation/personnalisation de plus de 200 noms de pays, ainsi que d'autres textes de l'interface utilisateur (par exemple, le texte d'espace réservé pour la saisie de la recherche de pays). Le moyen le plus simple de procéder consiste simplement à importer l'un des modules de traduction fournis et à définir i18n sur cette valeur (voir l'option 1 ci-dessous). Vous pouvez également remplacer une ou plusieurs clés individuelles de cette manière (voir l'option 1 ci-dessous). Vous pouvez également fournir vos propres traductions personnalisées (voir l'option 2 ci-dessous). Si vous fournissez le vôtre, vous devrez spécifier tous les noms de pays (qui peuvent être copiés du projet country-list, par exemple voici les noms de pays en français), ainsi que quelques chaînes d'interface utilisateur (répertoriées ci-dessous). Voir exemple.

Si nous ne prenons pas actuellement en charge une langue dont vous avez besoin, il est facile d'y contribuer vous-même : il vous suffit de fournir une poignée de chaînes de traduction de l'interface utilisateur, car nous récupérons automatiquement les noms de pays du projet de liste de pays.

Option 1 : importer l'un des modules de traduction fournis

 import { fr } from "intl-tel-input/i18n" ;

intlTelInput ( input , {
  i18n : fr ,
} ) ;

// or to override one or more keys, you could do something like this
intlTelInput ( input , {
  i18n : {
    ... fr ,
    searchPlaceholder : "Recherche de pays" ,
  } ,
} ) ;

Option 2 : définissez vos propres traductions personnalisées

 intlTelInput ( input , {
  i18n : {
    // Country names - see the full list in src/js/intl-tel-input/i18n/en/countries.ts
    af : "Afghanistan" ,
    al : "Albania" ,
    dz : "Algeria" ,
    as : "American Samoa" ,
    ad : "Andorra" ,
    ...
    // Aria label for the selected country element
    selectedCountryAriaLabel : "Selected country" ,
    // Screen reader text for when no country is selected
    noCountrySelected : "No country selected" ,
    // Aria label for the country list element
    countryListAriaLabel : "List of countries" ,
    // Placeholder for the search input in the dropdown
    searchPlaceholder : "Search" ,
    // Screen reader text for when the search produces no results
    zeroSearchResults : "No results found" ,
    // Screen reader text for when the search produces 1 result
    oneSearchResult : "1 result found" ,
    // Screen reader text for when the search produces multiple results
    multipleSearchResults : "${count} results found" ,
  }
} ) ;

pays initial
Type : String Valeur par défaut : ""
Définissez la sélection initiale du pays en spécifiant son code pays, par exemple "us" pour les États-Unis. (Veuillez ne pas le faire à moins d'être sûr du pays de l'utilisateur, car cela peut entraîner des problèmes délicats s'il est mal défini et l'utilisateur remplit automatiquement son numéro national et soumet le formulaire sans vérifier - dans certains cas, cela peut passer la validation. et vous pouvez finir par stocker un numéro avec un mauvais code de composition). Vous pouvez également définir initialCountry sur "auto" , qui recherchera le pays de l'utilisateur en fonction de son adresse IP (nécessite l'option geoIpLookup - voir exemple). Notez que quelle que soit la manière dont vous utilisez initialCountry , la sélection du pays ne sera pas mise à jour si l'entrée contient déjà un numéro avec un indicatif international.

loadUtilsOnInit (voir discussion sur la v25)
Type : String ou () => Promise Par défaut : "" Exemple : "/build/js/utils.js"

C'est une façon de charger (paresseux) le fichier utils.js inclus (pour activer le formatage/validation, etc.) - voir Chargement du script utilitaires pour plus d'options. Vous devrez héberger le fichier utils.js, puis définir l'option loadUtilsOnInit sur cette URL, ou bien simplement le pointer vers une version hébergée par CDN, par exemple "https://cdn.jsdelivr.net/npm/[email protected]/build/js/utils.js" . Le script est chargé via une instruction d'importation dynamique, ce qui signifie que l'URL ne peut pas être relative – elle doit être absolue.

Alternativement, cela peut être une fonction qui renvoie une promesse pour le module utils. Lorsque vous utilisez un bundler comme Webpack, cela peut être utilisé pour indiquer au bundler que le script utils doit être conservé dans un fichier séparé du reste de votre code. Par exemple : { loadUtilsOnInit: () => import("intl-tel-input/utils") } .

Le script n'est récupéré que lorsque vous initialisez le plugin, et en outre, uniquement lorsque le chargement de la page est terminé (lors de l'événement de chargement de la fenêtre) pour éviter le blocage (le script fait environ 260 Ko). Lors de l'instanciation du plugin, un objet Promise est renvoyé sous la propriété d'instance promise , vous pouvez donc faire quelque chose comme iti.promise.then(callback) pour savoir quand les demandes d'initialisation comme celle-ci sont terminées. Voir Script utilitaires pour plus d'informations.

Mode national
Type : Boolean par défaut : true
Formatez les nombres au format national plutôt qu’au format international. Cela s'applique aux numéros réservés et à l'affichage des numéros existants des utilisateurs. Notez que les utilisateurs peuvent saisir leurs numéros au format national - tant qu'ils ont sélectionné le bon pays, vous pouvez utiliser getNumber pour extraire un numéro international complet - voir exemple. Il est recommandé de laisser cette option activée, pour encourager les utilisateurs à saisir leurs numéros au format national, car cela leur est généralement plus familier et crée ainsi une meilleure expérience utilisateur.

uniquementPays
Type : Array Par défaut : []
Dans la liste déroulante, affichez uniquement les pays que vous spécifiez - voir exemple.

placeholderNumberType
Type : String Valeur par défaut : "MOBILE"
Spécifiez l'une des clés de l'énumération intlTelInput.utils.numberType (par exemple "FIXED_LINE" ) pour définir le type de numéro à utiliser pour l'espace réservé. Jouez avec cette option sur Storybook (en utilisant le composant React).

Afficher les drapeaux
Type : Boolean par défaut : true
Réglez ceci sur false pour masquer les drapeaux, par exemple pour des raisons politiques. Au lieu de cela, il affichera une icône de globe générique. Jouez avec cette option sur Storybook (en utilisant le composant React).

Code de numérotation séparé
Type : Boolean Valeur par défaut : false
Affichez l'indicatif international du pays sélectionné à côté de l'entrée, afin qu'il semble faire partie du numéro saisi. Étant donné que l'utilisateur ne peut pas modifier le code de numérotation affiché, il peut essayer d'en saisir un nouveau. Dans ce cas, pour éviter d'avoir deux codes de numérotation l'un à côté de l'autre, nous ouvrons automatiquement la liste déroulante des pays et mettons le nouveau code de numérotation dans la zone de recherche. plutôt. Ainsi, s'ils tapent +54, l'Argentine sera mise en surbrillance dans la liste déroulante et ils pourront simplement appuyer sur Entrée pour la sélectionner, mettant ainsi à jour le code de numérotation affiché (cette fonctionnalité nécessite que allowDropdown et countrySearch soient activés). Jouez avec cette option sur Storybook (en utilisant le composant React).

Mode strict
Type : Boolean Valeur par défaut : false
Lorsque l'utilisateur saisit l'entrée, ignorez tous les caractères non pertinents. L'utilisateur ne peut saisir que des caractères numériques et un plus facultatif au début. Limitez la longueur à la longueur maximale du nombre valide (cela respecte validationNumberType ). Nécessite le chargement du script utils. Voir exemple.

utiliserFullscreenPopup
Type : Boolean par défaut : true on mobile devices, false otherwise
Contrôlez le moment où la liste des pays apparaît sous forme de fenêtre contextuelle en plein écran ou de liste déroulante en ligne. Par défaut, il apparaîtra sous la forme d'une fenêtre contextuelle en plein écran sur les appareils mobiles (en fonction de l'agent utilisateur et de la largeur de l'écran), pour mieux utiliser l'espace limité (de la même manière que fonctionne un la mise en page sera interrompue. Au lieu de cela, vous devez l'insérer avant le conteneur (avec la classe iti ).

Position déroulante
La liste déroulante doit apparaître automatiquement au-dessus/en dessous de l'entrée en fonction de l'espace disponible. Pour que cela fonctionne correctement, vous ne devez initialiser le plugin qu'après que le a été ajouté au DOM.

Espaces réservés
Pour obtenir les espaces réservés automatiques spécifiques au pays, omettez simplement l'attribut placeholder sur le , ou définissez autoPlaceholder sur "aggressive" pour remplacer tout espace réservé existant,

Groupes d'entrée d'amorçage
Quelques correctifs CSS sont nécessaires pour que le plugin fonctionne correctement avec les groupes d'entrée Bootstrap. Vous pouvez voir un Codepen ici.
Remarque : il existe actuellement un bug dans Mobile Safari qui provoque un crash lorsque vous cliquez sur la flèche déroulante (un triangle CSS) à l'intérieur d'un groupe d'entrée. La solution de contournement la plus simple consiste à supprimer le triangle CSS avec cette ligne :

. iti__arrow { border : none; }

Contribuer

Consultez le guide de contribution pour obtenir des instructions sur la configuration du projet et les modifications, ainsi que sur la manière de mettre à jour vers une nouvelle version de libphonenumber, de mettre à jour les images de drapeau ou d'ajouter une nouvelle traduction.

Attributions

Tests utilisateur optimisés par le programme Open Source BrowserStack

Test du navigateur via

Développer
Informations supplémentaires
  • Version v24.7.0
  • Type Autre code source
  • Date de mise à jour 2024-11-12
  • taille
  • Langue Chinois simplifié