GT ClassMethodsLocales
requiresTranslation
GT requiresTranslation 方法的 API 参考
概述
requiresTranslation 方法会根据源和目标 locale 判断是否需要翻译。
它通过比较语言代码并参考已批准的 locale 列表来确定源内容是否需要翻译。
参考资料
参数
Prop
Type
参数说明
| 参数 | 描述 | 
|---|---|
| sourceLocale | 源语言代码(locale code)。如果未提供,则使用该实例的 sourceLocale | 
| targetLocale | 目标语言代码(locale code)。如果未提供,则使用该实例的 targetLocale | 
| approvedLocales | 已批准的目标语言列表(locales)。如果未提供,则使用该实例的 locales列表 | 
| customMapping | 用于语言解析的可选自定义映射(customMapping) | 
返回
boolean - 若需要翻译则返回 true,否则返回 false
抛出
- Error- 当未提供源语言,且实例未配置- sourceLocale时
- Error- 当未提供目标语言,且实例未配置- targetLocale时
示例
const gt = new GT({
  sourceLocale: 'en-US',
  targetLocale: 'es-ES',
  locales: ['en-US', 'es-ES', 'fr-FR', 'de-DE']
});
// 不同语言需要翻译
console.log(gt.requiresTranslation('en-US', 'es-ES')); // true
console.log(gt.requiresTranslation('en-US', 'fr-FR')); // true
// 相同语言不需要翻译
console.log(gt.requiresTranslation('en-US', 'en-US')); // false
console.log(gt.requiresTranslation('es-ES', 'es-ES')); // false
// 同一语言的不同方言不需要翻译
console.log(gt.requiresTranslation('en-US', 'en-GB')); // false
console.log(gt.requiresTranslation('es-ES', 'es-MX')); // false
// 目标语言不在支持的 locale 列表中
console.log(gt.requiresTranslation('en-US', 'it-IT')); // false (it-IT 不在支持的 locale 列表中)说明
- 不仅做精确匹配,还会考虑 locale 的语言族
- 遵循已批准的 locale 列表
- 若目标 locale 不在已批准的 locales 中(如有提供),则返回 false
后续步骤
- 使用 isSameLanguage检查 locale 的语言是否相同
- 使用 determineLocale选择最佳 locale
- 使用 isValidLocale验证 locales 的有效性
这份指南怎么样?

