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 的本地化显示名称。


行为

显示语言解析

该函数按以下优先级本地化名称:

  1. defaultLocale 参数(若提供)
  2. 库的默认 locale('en')

自定义映射集成

  • 会优先依据自定义映射匹配语言代码和名称
  • 支持别名解析与自定义显示名称
  • 对未映射的代码将回退到标准 Intl.DisplayNames

名称解析策略

  1. 自定义映射名称(最高优先级)
  2. 默认 locale 的 Intl.DisplayNames
  3. 库默认值('en')的 Intl.DisplayNames
  4. 语言代码本身(后备)

示例

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 参数决定返回名称所使用的语言

下一步

这份指南怎么样?

getLocaleName