Utility FunctionsLocales
getLocaleName
独立函数 getLocaleName 的 API 参考
概览
独立的 getLocaleName 函数无需 GT class 实例即可获取语言代码的显示名称。
它使用 Intl.DisplayNames API,为任何有效的 BCP-47 语言代码提供本地化的 locale 名称。
import { getLocaleName } from 'generaltranslation';
const name = getLocaleName('fr-CA', 'en');
console.log(name); // “法语(加拿大)”参考资料
参数
Prop
Type
参数说明
| 参数 | 说明 |
|---|---|
locale | 要获取其显示名称的 BCP-47 语言代码 |
defaultLocale | 用于本地化显示名称的默认语言(默认为 “en”) |
customMapping | 针对语言代码与名称的可选自定义映射 |
返回值
string - 该 locale 的本地化显示名称。
行为
显示语言解析
该函数按以下优先级对名称进行本地化:
defaultLocale参数(如果提供)- 库的默认 locale(“en”)
自定义映射集成
- 会优先在自定义映射中检查语言代码和名称
- 支持别名解析和自定义显示名称
- 对未映射的代码回退到标准 Intl.DisplayNames
名称解析策略
- 自定义映射名称(最高优先级)
- 默认语言环境中的 Intl.DisplayNames
- 库默认语言环境('en')中的 Intl.DisplayNames
- 使用 语言代码 本身(后备)
示例
import { getLocaleName } from 'generaltranslation';
// 英文显示名称
console.log(getLocaleName('es', 'en')); // “西班牙语(西班牙)”
console.log(getLocaleName('ja', 'en')); // “日语(日本)”
console.log(getLocaleName('zh', 'en')); // “中文(中国大陆)”构建 locale 选项
import { getLocaleName, getLocaleEmoji } from 'generaltranslation';
function buildLocaleOptions(
supportedLocales: string[],
displayLocale: string = 'en'
) {
return supportedLocales.map(locale => ({
value: locale,
label: getLocaleName(locale, displayLocale),
emoji: getLocaleEmoji(locale)
}));
}
const options = buildLocaleOptions([
'en',
'es',
'fr',
'de',
'ja'
], 'en');
console.log(options);
// [
// { value: 'en', label: '英语(美国)', emoji: '🇺🇸' },
// { value: 'es', label: '西班牙语(西班牙)', emoji: '🇪🇸' },
// ...
// ]说明
- 自定义映射优先于标准 Intl.DisplayNames
- 若无法确定显示名称,将返回语言代码本身
- display locale 参数决定返回名称所用的语言
后续步骤
- 使用
getLocaleEmoji获取 locale emoji - 使用 GT class 方法执行有状态操作:
getLocaleName - 了解
CustomMapping类型
本指南如何?