Utility FunctionsLocales

getLocaleDirection

getLocaleDirection 関数のAPIリファレンス

概要

getLocaleDirection 関数は、GT クラスのインスタンスなしで、ロケールのテキスト方向(左から右または右から左)を判定します。 Intl.Locale API を使用して、有効な BCP-47 ロケールコードに対し、正確に方向を検出します。

この関数は、ロケールに応じて HTML 要素の dir 属性を設定する際に最もよく使用されます。

import { getLocaleDirection } from 'generaltranslation';

const direction = getLocaleDirection('ar-SA');
console.log(direction); // "rtl"

const englishDirection = getLocaleDirection('en-US');
console.log(englishDirection); // "ltr"

リファレンス

パラメータ

Prop

Type

パラメータの説明

パラメータ説明
locale文字方向を判定するための BCP-47 ロケールコード

戻り値

'ltr' | 'rtl' - locale のテキスト方向:

  • 'ltr': 左から右(英語、スペイン語、フランス語、ドイツ語、中国語、日本語など、ほとんどの言語)
  • 'rtl': 右から左(アラビア語、ヘブライ語、ペルシア語、ウルドゥー語などのセム系/中東の言語)

動作

方向検出アルゴリズム

この関数は Intl.Locale API の textInfo.direction プロパティを使用します:

  1. 指定された locale に対して Intl.Locale オブジェクトを作成する
  2. 言語固有の方向を取得するために textInfo.direction プロパティにアクセスする
  3. 右から左の言語には 'rtl'、それ以外には 'ltr' を返す
  4. locale が無効な場合、またはエラーが発生した場合は既定で 'ltr' を返す

RTL言語の認識

以下のRTL言語を自動検出します:

  • Arabic(アラビア語) (ar, ar-SA, ar-EG, ar-AE など)
  • Hebrew(ヘブライ語) (he, he-IL)
  • Persian/Farsi(ペルシア語/ファルシー語) (fa, fa-IR)
  • Urdu(ウルドゥー語) (ur, ur-PK, ur-IN)
  • Pashto(パシュトー語) (ps)
  • Sindhi(シンド語) (sd)
  • Kurdish Sorani(クルド語ソラニー) (ckb)
  • その他のRTLスクリプト

エラー処理

  • 無効または不正なロケールコードは、デフォルトで 'ltr' にフォールバックします
  • 無効な入力でも例外はスローされません
  • エッジケースに対しても堅牢にフォールバック動作します

基本的な文字方向検出

import { getLocaleDirection } from 'generaltranslation';

// 左から右に表記する言語
console.log(getLocaleDirection('en-US')); // "ltr"
console.log(getLocaleDirection('es-ES')); // "ltr"
console.log(getLocaleDirection('fr-FR')); // "ltr"
console.log(getLocaleDirection('ja-JP')); // "ltr"
console.log(getLocaleDirection('zh-CN')); // "ltr"

// 右から左に表記する言語
console.log(getLocaleDirection('ar-SA')); // "rtl"
console.log(getLocaleDirection('he-IL')); // "rtl"
console.log(getLocaleDirection('fa-IR')); // "rtl"
console.log(getLocaleDirection('ur-PK')); // "rtl"

注意事項

  • 左横書きの言語(世界の大半の言語)では 'ltr' を返します
  • 右横書きの言語(アラビア語、ヘブライ語、ペルシア語など)では 'rtl' を返します
  • 正確な判定のために最新の Intl.Locale API を使用します
  • すべての BCP-47 ロケールコードで動作します

次のステップ

このガイドはどうでしたか?

getLocaleDirection