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 无效或抛出 Error,则默认返回
'ltr'
RTL 语言识别
可自动检测以下 RTL 语言,包括:
- 阿拉伯语(
ar,ar-SA,ar-EG,ar-AE等) - 希伯来语(
he,he-IL) - 波斯语/法尔西语(
fa,fa-IR) - 乌尔都语(
ur,ur-PK,ur-IN) - 普什图语(
ps) - 信德语(
sd) - 库尔德语(索拉尼)(
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.LocaleAPI 进行准确检测 - 适用于所有 BCP-47 语言代码
下一步
- 使用 GT class 方法
getLocaleDirection - 通过
getLocaleProperties获取 locale 属性 - 使用
isValidLocale验证 locales - 通过
getLocaleEmoji获取 locale emoji
本指南如何?