isSameDialect
GT の isSameDialect メソッドのAPIリファレンス
概要
isSameDialect メソッドは、複数の BCP-47 ロケールコードが同じ方言を表しているかを判定します。
ロケールコードの言語および地域コンポーネントを比較し、同一の言語変種かどうかを判断します。
リファレンス
パラメータ
Prop
Type
パラメーターの説明
| パラメーター | 説明 | 
|---|---|
| ...locales | 比較対象となるロケールコード(文字列)またはロケールコード配列を可変長で受け取ります。指定された対応ロケールはすべて同一の方言を表している必要があります | 
戻り値
boolean - 指定されたすべてのロケールコードが同一の方言を表す場合は true、それ以外は false
例外
例外は発生しません。無効なロケールコードは適切に処理され、false を返します。
挙動
方言比較ロジック
このメソッドは、方言が等しいかどうかを判定するために次のロジックを用います。
- locales の正規化 - すべての入力ロケールコードを正規化する
- 言語コードの比較 - すべての locales は同じ基底言語である必要がある
- 地域階層の取り扱い - 基底言語はその地域バリアントと一致とみなす
- 方言の完全一致 - 地域バリアントは完全に一致している必要がある
階層ルール
- ベース言語('en')はすべての地域変種('en-US'、'en-GB')に一致する
- 地域変種は完全一致の場合にのみ一致する('en-US'≠'en-GB')
- スクリプト変種がある場合は比較に考慮される
- 異なる言語は一致しない('en'≠'es')
入力の柔軟性
このメソッドは次の形式を受け付けます:
- 複数の文字列引数: isSameDialect('en-US', 'en-GB')
- 文字列配列: isSameDialect(['en-US', 'en-GB'])
- 混在形式: isSameDialect('en-US', ['en-GB', 'en-CA'])
- 単一の locale: isSameDialect('en-US')(常にtrueを返す)
例
基本的な方言比較
const gt = new GT({
  sourceLocale: 'en-US',
  targetLocale: 'es-ES'
});
// 完全に同じロケール
console.log(gt.isSameDialect('en-US', 'en-US')); // true
console.log(gt.isSameDialect('zh-CN', 'zh-CN')); // true
// 同じ言語の異なるロケール
console.log(gt.isSameDialect('en-US', 'en-GB')); // false
console.log(gt.isSameDialect('es-ES', 'es-MX')); // false
console.log(gt.isSameDialect('pt-PT', 'pt-BR')); // false
// 地域バリアントを持つ基本言語
console.log(gt.isSameDialect('en', 'en-US')); // true
console.log(gt.isSameDialect('es', 'es-ES')); // true
console.log(gt.isSameDialect('zh', 'zh-CN')); // true
// 異なる言語
console.log(gt.isSameDialect('en-US', 'es-ES')); // false
console.log(gt.isSameDialect('fr-FR', 'de-DE')); // false注意
- 正確な比較のために標準化されたロケールコードを使用します
- 柔軟な入力形式(文字列、配列、混在)を受け付けます
次のステップ
- isSameLanguageで言語を比較する
- isSupersetLocaleでロケールの階層関係を確認する
- isValidLocaleで対応ロケールを検証する
このガイドはどうでしたか?

