目次
ロケールを定義します
相対期間
デジタル、通貨、パーセンテージ、ユニット
文字列比較
JavaScript i18nのロケールを指定する方法は?
JavaScript I18Nで複数のロケールを使用できますか?
JavaScript i18nのフォーマットオプションをカスタマイズする方法は?
JavaScript i18nを他のJavaScript APIで使用できますか?
JavaScript i18nはすべてのブラウザーによってサポートされていますか?
JavaScript i18nの詳細はどこで学ぶことができますか?
ホームページ ウェブフロントエンド jsチュートリアル JavaScript Internationalization API(I18N)とは何ですか?

JavaScript Internationalization API(I18N)とは何ですか?

Feb 10, 2025 am 10:52 AM

What is the JavaScript Internationalization API (I18n)?

英語は世界で最も広く話されている言語ですが、英語を話すのは7人に1人だけです。これは3億7,900万人の第一言語(母国語)ですが、マンダリンを話す人は9億1,700万人、スペイン語を話す4億6,000万人、ヒンディー語を話す3億4100万人がいます。

英語を話すユーザーの多くは、新興市場に住んでおり、インターネットの成長が指数関数的に増加しています。 Webアプリケーションをグローバルに翻訳できる場合、潜在的なターゲット市場が700%増加する可能性があります!

JavaScript Internationalized API(I18Nとも呼ばれます)を使用すると、Webページとアプリケーションを設計して、異なる言語を話すユーザーのニーズに簡単に適応できるようにします。

この記事では、APIが提供するさまざまな方法と、より多くの国際的な視聴者に到達するためにコードにそれらを実装する方法について説明します。

キーポイント

    JavaScript Internationalization API(I18N)は、さまざまな言語や文化的規範をサポートすることにより、グローバルな視聴者へのWebアプリケーションの適応を促進します。
  • INTLオブジェクトを使用して、開発者は地域によって異なる場合があるローカル設定に基づいて日付、時間、数値、およびリストをフォーマットできます。
  • APIには、ユーザーに馴染みのある形式で情報を提示するためにロケール識別子を受け入れる
  • Intl.DateTimeFormat()などの関数が含まれます。 Intl.NumberFormat() 相対的な時間書式設定()などの高度な機能により、より微妙で文化的に準拠したアプリケーションが可能になります。
  • Intl.RelativeTimeFormatその強力な機能にもかかわらず、JavaScript INTL APIは、言語と文化の違いを効果的に処理し、アプリケーションが真に国際化されるようにするために慎重に実装する必要があります。 Intl.PluralRules
  • Internationalization(i18n)はトリッキーな場合があります
  • 国際化は簡単に見えます…
あなたがそれをしようとするまで

ラテン語ベースの言語は、表面上で類似している場合があります。たとえば、名前、電子メール、日付を要求するフォームは、次のように翻訳されます。 スペイン語:nombre、email、fecha

フランス語:nom、電子メール、日付

    ドイツ語:名前、電子メール、datum
  • GetText Internationalization and Localization Systemsは何十年も前から存在しており、ほとんどのプログラミング言語にはライブラリが利用可能です。
  • 簡単な場合、トークン化フォームを使用できます。たとえば、以下を含むHTMLテンプレートを使用してください。
これは、ユーザーが英語を主要な言語として設定したときに、

"name"

を動的に置き換えます。残念ながら、これはユーザーインターフェイスの問題が表示され始める場所です。
  1. 同じ言語には異なるバリエーションがある場合があります。スペインでのスペイン語の使用は、南アメリカとまったく同じではありません。
  2. 1つの言語の単語は、他の言語でははるかに長く成長する場合があります。たとえば、「電子メール」はロシア語で「эfiedofhe)として「эする問」と翻訳されています。
  3. テキストは、常に左から右に配置されるとは限りません。アラビア語、ヘブライ語、クルド語、イディッシュ語など、右から左に書かれたものもあります。他の言語は、中国語、韓国語、日本、台湾など、上から下まで書くことができます。
テキストを最小限に抑え、方向、書き込みパターン、論理的次元などのCSSプロパティをレイアウトすることで、多くの問題を解決できます。

混乱という用語

アプリケーションが日付、時間、数値、通貨、またはユニットを表示する必要がある場合、さらなる混乱が発生します。

日付を「12/03/24」と表示することを検討してください。それは次のように解釈されます:

    MDY形式を使用している居住者は、「2024年12月3日」と解釈します。
  • ヨーロッパ、南アメリカ、アジアの住民は、それを「2024年3月12日」と解釈しました。 カナダ、中国、日本、ハンガリーの住民は、より実用的なYMD形式を使用して「2012年3月24日」と解釈します。
  • (日付セパレーターのスラッシュはすべての言語で一般的に使用されていないことに注意してください!)
  • 番号「1,000」は次のように解釈されます

米国、英国、カナダ、中国、日本の人々は、それを「1000」と解釈します スペイン、フランス、ドイツ、ロシアの人々は、これらの国の小数がコンマで分離されているため、「1つ(ポイントゼロ)」と解釈するでしょう。

英語だけでも、状況は複雑になる可能性があります。 「1,000メートル」という用語は、次のことを意味します
    米国居住者の場合は
  • 1 km(または0.62マイル)
  • 英国、カナダ、オーストラリアの人々にとって、それは千の測定器のコレクションです!

javascript intl api

    ほとんど知られていないJavaScript Intlオブジェクトは、ほとんどの最新のブラウザーとランタイムでECMAScript Internationalized APIを実装しています。サポートは通常良好であり、IE11でさえもっと多くの有用な方法があります。古いブラウザの場合、ポリフィルがあり、APIはこのように検出できます。
  • APIは少し珍しいです。日付、時間、数字、および構成パラメーターを含むオプションのオブジェクトを通過するリスト、リストにいくつかのオブジェクトコンストラクターを提供します。たとえば、これはアメリカの英語を指定するDateTimeオブジェクトです。
  • このオブジェクトを複数回使用して、日付()値(または使用可能なES6時間)を渡すさまざまな方法を呼び出すことができます。通常、フォーマットメソッドは最も実用的なオプションです。たとえば、

または、コードの行でINTLオブジェクトを作成して、メソッドを実行できます。

format()メソッドに加えて、一部のオブジェクトは次の方法もサポートしています。

  • formattoparts():フォーマットされた文字列を含むオブジェクトの配列を返します。たとえば、{type: 'weekday'、value: 'manday'}
  • ResolvedOptions():DateFormatter.ResolvedOptions()。ロケールなど、使用されるロケールおよびフォーマットオプションを反映するプロパティを含む新しいオブジェクトを返します。

ロケールを定義します

すべてのINTLオブジェクトには、ロケールパラメーターが必要です。これは、識別する文字列です

    言語subtag
  • スクリプトsubtag(オプション)
  • リージョン(または国)サブタグ(オプション)
  • 1つ以上のバリアントサブタグ(オプション)
  • 1つ以上のBCP 47拡張シーケンス(オプション)
  • 特別な目的拡張シーケンス(オプション)
  • 通常、言語と地域で十分です。たとえば、「en-us」、「fr-fr」など

文字列を使用することに加えて、intl.localeオブジェクトを使用して、米国英語などのロケールを12時間形式で構築することもできます。

これは、別のINTLコンストラクターで使用できます。たとえば、

<code><label> for="name"></label>{{ NAME }}>
</code>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

ロケールが定義されていない場合、デバイスの現在の言語と地域設定が使用されます。たとえば、

<code>if (window.Intl) {
  // Intl 受支持
}
</code>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

これは、米国に設定されたデバイスで「5/4/2022」、英国に設定されたデバイスで「04/05/2022」を返します。

<code>const dateFormatter = new Intl.DateTimeFormat('en-US');
</code>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
日付と時刻

次のツールは、intl.dateTimeFormat()を使用してフォーマットされた日付と時間の例を示しています(言語や地域がリストされていない場合は、深く申し訳ありません!):

(Codepenの例はここに埋め込む必要がありますが、外部リソースを直接埋め込むことができないため、テキストの説明のみを提供できます。)Codepenの例異なる日付スタイル(フル、ロング、ミディアム、ショート)およびタイムスタイル(フル、ロング、ミディアム、ショート)、およびカレンダー、タイムゾーンなどの他のオプションを含む

コンストラクターはロケールとオプションオブジェクトを渡します。これには多くの可能なプロパティがありますが、DatestyleやTimestyleを超える必要はほとんどありません。 Intl.DateTimeFormat()(ここではテーブルですが、テーブルを直接作成できないため、テキストの説明のみを提供できます。)テーブルには、

、、

>、Intl.DateTimeFormat()dateStyletimeStylecalendardayPeriodnumberingSystemlocaleMatchertimeZonehour12、、hourCycleformatMatcherweekdayerayearmonthdayhourminutesecondなど。 timeZoneName

例:

<code>const valentinesDay = dateFormatter.format( new Date('2022-02-14') );
// 返回美国格式“2/14/2022”

const starwarsDay = dateFormatter.format( new Date('2022-05-04') );
// 返回美国格式“5/4/2022”
</code>
ログイン後にコピー
日付範囲

formatrange()メソッドは、2つの日付を取り、ロケールとオプションに応じて、最も簡潔な方法で期間をフォーマットします。たとえば、

<code>const starwarsDay = new Intl.DateTimeFormat('en-US').format( new Date('2022-05-04') );
</code>
ログイン後にコピー
このメソッドには、ブラウザのサポート範囲が小さくなりますが、Chrome 76に実装されています。

相対期間

intl.relativetimeformat()オブジェクトは、このモーメントに比べて期間を表示できます。オプションオブジェクトにはオプションが少なくなります:

(ここではテーブルですが、テーブルを直接作成できないため、テキストの説明のみを提供できます。)テーブルには、Intl.RelativeTimeFormat()localeMatcher、、numericstyle>待ってください。

format()メソッドは、値と単位を渡します:「year "、" Quarter "、" month "、" week "、" day "、" hour "、" minute "、または" second "。例:

<code><label> for="name"></label>{{ NAME }}>
</code>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

デジタル、通貨、パーセンテージ、ユニット

次のツールは、intl.numberformat()を使用した数値、通貨、パーセンテージ、および測定単位のフォーマットの例を示しています。

(Codepenの例はここに埋め込む必要がありますが、外部リソースを直接埋め込むことができないため、テキストの説明のみを提供できます。)Codepenの例は、異なる地域の数字、通貨、パーセンテージ、ユニットをフォーマットする方法を示しています。さまざまなスタイル(小数、通貨、パーセント、単位)を含む

を使用した言語、およびIntl.NumberFormat()notationcurrencycurrencyDisplayunitunitDisplay、、useGroupingminimumIntegerDigitsminimumFractionDigitsmaximumFractionDigitsminimumSignificantDigitsmaximumSignificantDigits、🎜>、

など。

Intl.NumberFormat()コンストラクターはロケールとオプションオブジェクトを渡します:numberingSystem notation(ここではテーブルですが、テーブルを直接作成できないため、テキストの説明のみを提供できます。)テーブルには、stylecurrency、、currencyDisplaycurrencySign>、unitunitDisplayuseGroupingminimumIntegerDigitsminimumFractionDigitsmaximumFractionDigitsminimumSignificantDigitsmaximumSignificantDigits

、、

<code>if (window.Intl) {
  // Intl 受支持
}
</code>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

など。

例:

リストIntl.ListFormat() typeintl.listformat()オブジェクトは、一連のアイテムを言語に敏感なリストにフォーマットできます。英語では、これには通常、最後のアイテムの前に「または」または「または」を追加する必要があります。 style

次のプロパティはオプションオブジェクトで設定できます。

(ここではテーブルですが、テーブルを直接作成できないため、テキストの説明のみを提供できます。)テーブルには、

<code>const dateFormatter = new Intl.DateTimeFormat('en-US');
</code>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
、など

例:

複数 わずかに奇妙なintl.pluralrules()オブジェクトは、複数のアイテムがある複数の敏感な言語ルールをサポートしています。オプションオブジェクトは、タイププロパティを次のように設定できます。
  • ベース:物の数(デフォルト値)、または
  • 順序番号:英語で1枚目、2番目、3番目などのもののランキング

select()メソッドは、数値の複数カテゴリを表す英語の文字列を返します(ゼロ、1、2、少数派、多数派、またはその他)。

例:

<code><label> for="name"></label>{{ NAME }}>
</code>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

文字列比較

最後に、intl.collat​​or()オブジェクトは、言語に敏感な文字列比較をサポートします。そのオプションオブジェクトは、次のプロパティを設定できます

(ここではテーブルですが、テーブルを直接作成できないため、テキストの説明のみを提供できます。)テーブルには、

Intl.Collator()、などcollation numeric比較()メソッドは2つの文字列を比較します。たとえば、

利益!
<code>if (window.Intl) {
  // Intl 受支持
}
</code>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

JavaScriptを使用してデータを表示する場合、ユーザーのローカル形式で情報を直接表示できるはずです。たとえば、次のコードは、INTL Short Dateフォーマットを使用するDateFormat()関数を定義します。

これ自体は、国際的な聴衆にとってアプリケーションを容易にすることはできませんが、グローバルな流通に近い最初のステップです。 JavaScript Internationalization API(i18n)についての

FAQ(FAQ)
<code>const dateFormatter = new Intl.DateTimeFormat('en-US');
</code>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
JavaScript Internationalization API(I18N)の目的は何ですか?

JavaScript Internationalization API(I18Nとも呼ばれます)は、言語に敏感な文字列比較、数値フォーマット、および日付と時刻のフォーマットを提供する組み込みのJavaScript APIです。これにより、開発者はさまざまな言語や文化的慣習をサポートすることにより、アプリケーションを国際化できます。これは、世界中で使用されるアプリケーションに特に役立ちます。さまざまな地域の言語と形式の規則に適応できるためです。

JavaScript i18nは日付と時刻のフォーマットをどのように処理しますか?

JavaScript i18nは、異なる文化的慣習に従って日付と時間をフォーマットするために使用できるDateTimeFormatオブジェクトを提供します。このオブジェクトは、ロケールとオプションオブジェクトをパラメーターとして使用し、使用するフォーマット慣習を定義します。オプションオブジェクトは、日付、時刻、タイムゾーン、および日付および時刻形式のその他の側面の形式を指定できます。

JavaScript i18nでデジタルフォーマットを処理する方法は?

javaScript i18nは、異なる文化的条約に従って数字をフォーマットするために使用できるナンバーフォーマットオブジェクトを提供します。このオブジェクトは、ロケールとオプションオブジェクトをパラメーターとして使用し、使用するフォーマット慣習を定義します。オプションオブジェクトは、数値(小数、パーセンテージ、または通貨)のスタイル、グループセパレータの使用、最小および最大小数の場所、および数値形式のその他の側面を指定できます。

JavaScript i18nで文字列比較を処理する方法は?

javaScript i18nは、異なる文化的慣習に従って文字列を比較するために使用できるコレーターオブジェクトを提供します。このオブジェクトは、ロケールとオプションオブジェクトをパラメーターとして取得し、使用する比較慣習を定義します。オプションオブジェクトは、比較の感度(基本、アクセント、ケース、またはバリアント)、数値ソートの使用、および文字列比較のその他の側面を指定できます。

JavaScript i18nのロケールを指定する方法は?

DateTimeFormat、Numberformat、またはCollat​​orオブジェクトを作成すると、ロケールをパラメーターとして指定できます。ロケールは、アメリカ英語の「en-us」やフランスで使用されているフランス語では「fr-fr」など、言語と地域を表す文字列です。ロケールが指定されていない場合、JavaScript環境のデフォルトのロケールが使用されます。

JavaScript I18Nで複数のロケールを使用できますか?

はい、DateTimeFormat、Numberformat、またはCollat​​orオブジェクトを作成するとき、アレイとして複数のロケールを指定できます。 JavaScript I18Nは、アレイでサポートする最初のロケールを使用します。これは、複数の地域で使用されるアプリケーションに非常に役立ちます。これにより、異なる地域の言語と形式の規則に適応することができます。

JavaScript i18nのフォーマットオプションをカスタマイズする方法は?

DateTimeFormat、Numberformat、またはCollat​​orオブジェクトを作成する場合、オプションオブジェクトを提供してJavaScript I18Nのフォーマットオプションをカスタマイズできます。オプションオブジェクトは、日付や数字の形式、文字列比較の感度など、フォーマットまたは比較の側面を指定できます。

JavaScript i18nを他のJavaScript APIで使用できますか?

はい、JavaScript I18Nは、他のJavaScript APIと組み合わせて使用​​できます。たとえば、DateTimeFormatオブジェクトを備えた日付オブジェクトを使用して日付をフォーマットするか、Numberformatオブジェクトを持つ番号オブジェクトを使用して数字をフォーマットすることもできます。これにより、JavaScriptの力を利用して、アプリケーションを国際化することができます。

JavaScript i18nはすべてのブラウザーによってサポートされていますか?

ほとんどの最新のブラウザー(Chrome、Firefox、Safari、Edgeを含む)はJavaScript i18nをサポートしています。ただし、古いブラウザやモバイルブラウザではサポートされていない場合があります。ブラウザーサポートに関する最新情報については、Mozilla Developer Network(MDN)の互換性テーブルを表示できます。

JavaScript i18nの詳細はどこで学ぶことができますか?

公式のECMAScript International API仕様、Mozilla Developer Network(MDN)、およびさまざまなオンラインチュートリアルや記事からJavaScript I18Nの詳細をご覧ください。これらのリソースは、APIとその使用に関する詳細な情報、およびJavaScriptアプリケーションを国際化するための例とベストプラクティスを提供します。

以上がJavaScript Internationalization API(I18N)とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

javascriptの分解:それが何をするのか、なぜそれが重要なのか javascriptの分解:それが何をするのか、なぜそれが重要なのか Apr 09, 2025 am 12:07 AM

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

JavaScriptの進化:現在の傾向と将来の見通し JavaScriptの進化:現在の傾向と将来の見通し Apr 10, 2025 am 09:33 AM

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

JavaScriptエンジン:実装の比較 JavaScriptエンジン:実装の比較 Apr 13, 2025 am 12:05 AM

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

JavaScript:Web言語の汎用性の調査 JavaScript:Web言語の汎用性の調査 Apr 11, 2025 am 12:01 AM

JavaScriptは、現代のWeb開発のコア言語であり、その多様性と柔軟性に広く使用されています。 1)フロントエンド開発:DOM操作と最新のフレームワーク(React、Vue.JS、Angularなど)を通じて、動的なWebページとシングルページアプリケーションを構築します。 2)サーバー側の開発:node.jsは、非ブロッキングI/Oモデルを使用して、高い並行性とリアルタイムアプリケーションを処理します。 3)モバイルおよびデスクトップアプリケーション開発:クロスプラットフォーム開発は、反応および電子を通じて実現され、開発効率を向上させます。

Python vs. JavaScript:学習曲線と使いやすさ Python vs. JavaScript:学習曲線と使いやすさ Apr 16, 2025 am 12:12 AM

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

next.jsを使用してマルチテナントSaaSアプリケーションを構築する方法(フロントエンド統合) next.jsを使用してマルチテナントSaaSアプリケーションを構築する方法(フロントエンド統合) Apr 11, 2025 am 08:22 AM

この記事では、許可によって保護されたバックエンドとのフロントエンド統合を示し、next.jsを使用して機能的なedtech SaaSアプリケーションを構築します。 FrontEndはユーザーのアクセス許可を取得してUIの可視性を制御し、APIリクエストがロールベースに付着することを保証します

C/CからJavaScriptへ:すべてがどのように機能するか C/CからJavaScriptへ:すべてがどのように機能するか Apr 14, 2025 am 12:05 AM

C/CからJavaScriptへのシフトには、動的なタイピング、ゴミ収集、非同期プログラミングへの適応が必要です。 1)C/Cは、手動メモリ管理を必要とする静的に型付けられた言語であり、JavaScriptは動的に型付けされ、ごみ収集が自動的に処理されます。 2)C/Cはマシンコードにコンパイルする必要がありますが、JavaScriptは解釈言語です。 3)JavaScriptは、閉鎖、プロトタイプチェーン、約束などの概念を導入します。これにより、柔軟性と非同期プログラミング機能が向上します。

JavaScriptをインストールするにはどうすればよいですか? JavaScriptをインストールするにはどうすればよいですか? Apr 05, 2025 am 12:16 AM

JavaScriptは、最新のブラウザにすでに組み込まれているため、インストールを必要としません。開始するには、テキストエディターとブラウザのみが必要です。 1)ブラウザ環境では、タグを介してHTMLファイルを埋め込んで実行します。 2)node.js環境では、node.jsをダウンロードしてインストールした後、コマンドラインを介してJavaScriptファイルを実行します。

See all articles