GT ClassMethodsLocales
requiresTranslation
GT requiresTranslation 方法的 API 参考
概览
requiresTranslation 方法会根据源和目标 locale 判断是否需要翻译。
它通过比较语言代码并参考已批准的 locale 列表,来确定源内容是否需要翻译。
参考资料
参数
Prop
Type
参数说明
| 参数 | 说明 |
|---|---|
sourceLocale | 源语言(sourceLocale)的语言代码。如果未提供,则使用实例的 sourceLocale |
targetLocale | targetLocale 的语言代码。如果未提供,则使用实例的 targetLocale |
approvedLocales | 已批准的目标语言(locales)数组。如果未提供,则使用实例的 locales 数组 |
customMapping | 用于 locale 解析的可选 customMapping |
返回
boolean — 需要翻译时为 true,否则为 false
抛出
Error- 如果未提供源语言(sourceLocale),且该实例未配置sourceLocaleError- 如果未提供目标语言(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
后续步骤
- 使用
isSameLanguage检查 locale 语言是否相同 - 使用
determineLocale选择最佳 locale - 使用
isValidLocale验证 locales
本指南如何?