ホーム>プログラミング関連>その他のソースコード

i18n
タイプ: Objectデフォルト: {}
200 を超える国名およびその他のユーザー インターフェイス テキスト (国検索入力のプレースホルダー テキストなど) のローカリゼーション/カスタマイズを許可します。これを行う最も簡単な方法は、提供されている変換モジュールの 1 つをインポートし、 i18nその値に設定することです (下記のオプション 1 を参照)。この方法で 1 つ以上の個別のキーをオーバーライドすることもできます (下記のオプション 1 を参照)。あるいは、独自のカスタム翻訳を提供することもできます (下記のオプション 2 を参照)。独自のものを指定する場合は、すべての国名 (国リスト プロジェクトからコピーできます。たとえば、ここではフランス語の国名です) と、いくつかの UI 文字列 (以下にリストします) を指定する必要があります。例を参照してください。

必要な言語が現在サポートされていない場合、これを自分で提供するのは簡単です。国リスト プロジェクトから国名が自動的に取り込まれるため、少数の UI 翻訳文字列を指定するだけで済みます。

オプション 1: 提供された翻訳モジュールの 1 つをインポートする

 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" ,
  } ,
} ) ;

オプション 2: 独自のカスタム翻訳を定義する

 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" ,
  }
} ) ;

最初の国
タイプ: Stringデフォルト: ""
国コードを指定して最初の国の選択を設定します (例: 米国の場合は"us" 。 (ユーザーの国がわからない場合は、これを行わないように注意してください。設定が間違っていて、ユーザーが国番号を自動入力し、確認せずにフォームを送信すると、厄介な問題が発生する可能性があります。場合によっては、これにより検証に合格する可能性があります)間違ったダイヤル コードの番号を保存してしまう可能性があります)。また、 initialCountry "auto"に設定すると、IP アドレスに基づいてユーザーの国が検索されます ( geoIpLookupオプションが必要です - 例を参照)。どのようにinitialCountry使用しても、入力にすでに国際ダイヤルコードの番号が含まれている場合、国の選択は更新されないことに注意してください。

loadUtilsOnInit (v25 の議論を参照)
タイプ: Stringまたは() => Promiseデフォルト: ""例: "/build/js/utils.js"

これは、含まれている utils.js を (遅延的に) ロードする 1 つの方法です (フォーマット/検証などを有効にするため)。その他のオプションについては、「ユーティリティ スクリプトのロード」を参照してください。 utils.js ファイルをホストしてから、 loadUtilsOnInitオプションをその URL に設定するか、CDN でホストされているバージョン (例: "https://cdn.jsdelivr.net/npm/[email protected]/build/js/utils.js"を指定する必要があります。 "https://cdn.jsdelivr.net/npm/[email protected]/build/js/utils.js" 。スクリプトは動的インポート ステートメントを介してロードされます。つまり、URL は相対的であってはならず、絶対的である必要があります。

あるいは、utils モジュールの Promise を返す関数にすることもできます。 Webpack などのバンドラーを使用する場合、これを使用して、utils スクリプトをコードの残りの部分とは別のファイルに保存する必要があることをバンドラーに指示できます。例: { loadUtilsOnInit: () => import("intl-tel-input/utils") }

スクリプトはプラグインの初期化時にのみ取得され、さらにブロックを防ぐためにページの読み込みが完了したとき (ウィンドウの読み込みイベント時) にのみ取得されます (スクリプトは約 260 KB)。プラグインをインスタンス化すると、Promise オブジェクトがpromiseインスタンス プロパティで返されるため、 iti.promise.then(callback)のようなことを実行して、このような初期化リクエストがいつ終了したかを知ることができます。詳細については、「ユーティリティ スクリプト」を参照してください。

全国モード
タイプ: Boolean値 デフォルト: true
国際形式ではなく国内形式で数値をフォーマットします。これは、プレースホルダー番号、およびユーザーの既存の番号を表示する場合に適用されます。ユーザーが自分の番号を各国形式で入力しても問題ないことに注意してください。ユーザーが正しい国を選択している限り、 getNumber使用して完全な国際番号を抽出できます。例を参照してください。このオプションを有効のままにして、ユーザーに各国形式で番号を入力するよう促すことをお勧めします。これは通常、この方が馴染みがあり、ユーザー エクスペリエンスが向上するためです。

国のみ
タイプ: Arrayデフォルト: []
ドロップダウンには、指定した国のみが表示されます。例を参照してください。

プレースホルダー番号タイプ
タイプ: Stringデフォルト: "MOBILE"
enum intlTelInput.utils.numberTypeのキーの 1 つ (例: "FIXED_LINE" ) を指定して、プレースホルダーに使用する数値タイプを設定します。 Storybook でこのオプションを試してみましょう (React コンポーネントを使用)。

showFlags
タイプ: Boolean値 デフォルト: true
政治的な理由などでフラグを非表示にするには、これを false に設定します。代わりに、一般的な地球アイコンが表示されます。 Storybook でこのオプションを試してみましょう (React コンポーネントを使用)。

個別のダイヤルコード
タイプ: Boolean値 デフォルト: false
選択した国の国際ダイヤル コードを入力の横に表示し、入力した番号の一部であるように見せます。ユーザーは表示されたダイヤル コードを編集できないため、新しいダイヤル コードを入力しようとする可能性があります。この場合、2 つのダイヤル コードが隣り合うことを避けるために、自動的に国のドロップダウンが開き、新しいダイヤル コードが検索入力に入力されます。その代わり。したがって、+54 と入力すると、ドロップダウンでアルゼンチンが強調表示され、Enter キーを押して選択するだけで、表示されるダイヤル コードが更新されます (この機能を使用するには、 allowDropdowncountrySearch有効になっている必要があります)。 Storybook でこのオプションを試してみましょう (React コンポーネントを使用)。

厳密モード
タイプ: Boolean値 デフォルト: false
ユーザーが入力を入力するときは、無関係な文字は無視してください。ユーザーが入力できるのは、先頭に数字とオプションのプラスのみです。長さを有効な数値の最大長に制限します (これはvalidationNumberTypeを考慮します)。 utils スクリプトをロードする必要があります。例を参照してください。

全画面ポップアップを使用する
タイプ: Boolean値 デフォルト: true on mobile devices, false otherwise
国リストを全画面ポップアップとして表示するか、インライン ドロップダウンとして表示するかを制御します。デフォルトでは、限られたスペースを有効に活用するために (ユーザー エージェントと画面幅に基づいて) モバイル デバイスでは全画面ポップアップとして表示され (ネイティブのの前にエラー メッセージを挿入すると、レイアウトが壊れます。代わりに、コンテナー (クラスitiを使用) の前にこれを挿入する必要があります。

ドロップダウンの位置
利用可能なスペースに応じて、ドロップダウンが入力の上/下に自動的に表示されます。これが正しく機能するには、 が DOM に追加された後でのみプラグインを初期化する必要があります。

プレースホルダー
国固有の自動プレースホルダーを取得するには、 のプレースホルダー属性を省略するか、 autoPlaceholder "aggressive"に設定して既存のプレースホルダーをオーバーライドします。

ブートストラップ入力グループ
プラグインをブートストラップ入力グループで適切に動作させるには、CSS をいくつか修正する必要があります。コードペンはここで見ることができます。
注: 現在、Mobile Safari にはバグがあり、入力グループ内のドロップダウン矢印 (CSS の三角形) をクリックするとクラッシュが発生します。最も簡単な回避策は、次の行で CSS 三角形を削除することです。

. iti__arrow { border : none; }

貢献する

プロジェクトの設定と変更の手順、libphonenumber の新しいバージョンに更新する方法、フラグ イメージを更新する方法、または新しい翻訳を追加する方法については、寄稿ガイドを参照してください。

帰属

BrowserStack オープンソース プログラムによるユーザー テスト

によるブラウザテスト

拡大する
追加情報