Utility FunctionsLocales
getLocaleName
独立函数 getLocaleName 的 API 参考
概览
独立的 getLocaleName 函数无需 GT 类实例即可获取 locale 代码的显示名称。
它使用 Intl.DisplayNames API,为任何有效的 BCP-47 locale 代码提供本地化的 locale 名称。
import { getLocaleName } from 'generaltranslation';
const name = getLocaleName('fr-CA', 'en');
console.log(name); // “法语(加拿大)”参考资料
参数
Prop
Type
参数说明
| 参数 | 说明 | 
|---|---|
| locale | 要获取其显示名称的 BCP-47 语言代码 | 
| defaultLocale | 用于本地化显示名称的 locale(默认为 'en') | 
| customMapping | 可选的自定义映射,用于覆盖语言代码及其名称 | 
返回值
string - 该 locale 的本地化显示名称。
行为
显示语言解析
该函数按以下优先级本地化名称:
- defaultLocale参数(若提供)
- 库的默认 locale('en')
自定义映射集成
- 会优先依据自定义映射匹配语言代码和名称
- 支持别名解析与自定义显示名称
- 对未映射的代码将回退到标准 Intl.DisplayNames
名称解析策略
- 自定义映射名称(最高优先级)
- 默认 locale 的 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 的 options
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
- 如果无法确定显示名称,则直接返回该语言代码
- 显示用的 locale 参数决定返回名称所使用的语言
下一步
- 使用 getLocaleEmoji获取 locale 对应的 emoji
- 使用 GT 类方法处理有状态操作 getLocaleName
- 了解 CustomMapping类型
这份指南怎么样?

