GT ClassMethodsLocales

determineLocale

GT determineLocale 方法 API 参考

概览

determineLocale 方法会根据用户偏好,从一组已批准的 locale 中确定最佳匹配的语言环境。 当不存在精确匹配时,它通过 locale 协商来选出最合适的语言环境。

const gt = new GT({
  sourceLocale: 'en-US',
  locales: ['en-US', 'es-ES', 'fr-FR', 'de-DE']
});

// 精确匹配
console.log(gt.determineLocale('en-US')); // 'en-US'

// 语言回退(fallback)
console.log(gt.determineLocale('en-GB')); // 'en-US' (最接近的英语变体)

// 多个首选项
console.log(gt.determineLocale(['fr-CA', 'es-MX', 'en-US'])); // 'es-ES' (最接近的西班牙语)

// 无匹配项
console.log(gt.determineLocale('it-IT')); // undefined

参考资料

参数

Prop

Type

返回值

string | undefined - 返回最佳匹配的 locale;如果未找到匹配,则为 undefined


示例

用户 locale 协商

const gt = new GT({
  sourceLocale: 'en-US',
  locales: ['en-US', 'en-GB', 'es-ES', 'fr-FR']
});

// 模拟浏览器 Accept-Language 请求头
const userPreferences = ['fr-CA', 'en-GB', 'en'];
const bestMatch = gt.determineLocale(userPreferences);
console.log(bestMatch); // 根据偏好顺序匹配到 'fr-FR'

注意事项

  • 从已批准的 locales 中返回首个精确匹配
  • 当没有对应的具体地区时,回退到语言级匹配
  • 遵循输入数组中的偏好顺序
  • 当未找到合适的匹配时返回 undefined
  • 对在 Web 应用中实现 locale 协商至关重要

后续步骤

本指南如何?