# generaltranslation: General Translation Core SDK: determineLocale URL: https://generaltranslation.com/zh/docs/core/class/methods/locales/determine-locale.mdx --- title: determineLocale description: GT determineLocale 方法的 API 参考文档 --- ## 概述 `determineLocale` 方法会根据用户偏好,从已批准的区域设置列表中确定最佳匹配的区域设置。 当没有精确匹配时,它会通过区域设置协商来找到最合适的区域设置。 ```typescript const gt = new GT({ sourceLocale: 'en-US', locales: ['en-US', 'es-ES', 'fr-FR', 'de-DE'] }); // 精确匹配 console.log(gt.determineLocale('en-US')); // 'en-US' // 语言回退 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 ``` *** ## 参考 ### 参数 ### 返回值 `string | undefined` - 最匹配的区域设置;如果未找到匹配项,则返回 undefined *** ## 示例 ### 用户区域设置协商 ```typescript 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' 按偏好顺序匹配 ``` *** ## 说明 * 从已批准的区域设置中返回第一个精确匹配的项 * 当没有精确区域匹配时,回退到语言匹配 * 遵循输入数组中的优先级顺序 * 找不到合适的匹配项时返回 undefined * 对于在 Web 应用中实现区域设置协商至关重要 ## 后续步骤 * 使用 [`requires-translation`](/docs/core/class/methods/locales/requires-translation) 检查是否需要翻译 * 使用 [`is-same-language`](/docs/core/class/methods/locales/is-same-language) 比较语言是否相同