GT ClassMethodsLocales

requiresTranslation

GT requiresTranslation 方法的 API 参考

概览

requiresTranslation 方法会根据源和目标 locale 判断是否需要翻译。 它通过比较语言代码并参考已批准的 locale 列表,来确定源内容是否需要翻译。


参考资料

参数

Prop

Type

参数说明

参数说明
sourceLocale源语言(sourceLocale)的语言代码。如果未提供,则使用实例的 sourceLocale
targetLocaletargetLocale 的语言代码。如果未提供,则使用实例的 targetLocale
approvedLocales已批准的目标语言(locales)数组。如果未提供,则使用实例的 locales 数组
customMapping用于 locale 解析的可选 customMapping

返回

boolean — 需要翻译时为 true,否则为 false

抛出

  • Error - 如果未提供源语言(sourceLocale),且该实例未配置 sourceLocale
  • Error - 如果未提供目标语言(targetLocale),且该实例未配置 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

// 目标语言不在已批准的语言列表中
console.log(gt.requiresTranslation('en-US', 'it-IT')); // false(it-IT 不在已批准的语言列表中)

说明

  • 考虑 locale 的语言家族,而不只是精确匹配
  • 遵循已批准的 locale 列表
  • 若提供已批准的 locales,当目标 locale 不在其中时返回 false

后续步骤

本指南如何?