Utility FunctionsLocales
getLocaleDirection
getLocaleDirection 函数的 API 参考
概览
getLocaleDirection 函数无需 GT class 实例即可判断某个 locale 的文本方向(从左到右或从右到左)。它使用 Intl.Locale API,为任意有效的 BCP-47 语言代码提供精确的方向检测。
该函数常用于根据 locale 为 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 属性:
- 为传入的 locale 创建一个 Intl.Locale对象
- 读取 textInfo.direction属性以确定语言的书写方向
- 对从右向左的语言返回 'rtl',其他语言返回'ltr'
- 若 locale 无效或引发错误,则默认返回 'ltr'
RTL 语言识别
可自动检测以下 RTL 语言:
- 阿拉伯语(ar、ar-SA、ar-EG、ar-AE等)
- 希伯来语(he、he-IL)
- 波斯语/法尔西语(fa、fa-IR)
- 乌尔都语(ur、ur-PK、ur-IN)
- 普什图语(ps)
- 信德语(sd)
- 库尔德语(索拉尼)(ckb)
- 以及其他从右到左的文字
错误处理
- 无效或格式不正确的语言代码将默认设置为 'ltr'
- 对无效输入不会抛出异常
- 针对边缘情况具备健壮的后备行为
示例
基本方向检测
import { getLocaleDirection } from 'generaltranslation';
// 从左到右(LTR)语言
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"
// 从右到左(RTL)语言
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.LocaleAPI 进行精确检测
- 兼容所有 BCP-47 语言代码
后续步骤
- 使用 GT class 方法 getLocaleDirection
- 通过 getLocaleProperties获取 locale 属性
- 使用 isValidLocale验证 locales
- 使用 getLocaleEmoji获取 locale emoji
这份指南怎么样?

