EngineAliasRegistry.java
package com.yumu.noveltranslator.domain.util;
import com.yumu.noveltranslator.enums.TranslationMode;
import java.util.Map;
/**
* 前端引擎别名注册表
*
* <p>将前端传入的引擎名称(如 google、ai、fast、deepl 等)归一化为翻译质量档位(FAST/EXPERT/TEAM)。</p>
*/
public class EngineAliasRegistry {
private static final Map<String, TranslationMode> ALIAS_TO_MODE = Map.ofEntries(
Map.entry("google", TranslationMode.FAST),
Map.entry("mtran", TranslationMode.FAST),
Map.entry("fast", TranslationMode.FAST),
Map.entry("libre", TranslationMode.FAST),
Map.entry("youdao", TranslationMode.FAST),
Map.entry("baidu", TranslationMode.FAST),
Map.entry("mymemory", TranslationMode.FAST),
Map.entry("ai", TranslationMode.EXPERT),
Map.entry("openai", TranslationMode.EXPERT),
Map.entry("deepl", TranslationMode.EXPERT),
Map.entry("deepseek", TranslationMode.EXPERT),
Map.entry("ai-team", TranslationMode.TEAM),
Map.entry("team", TranslationMode.TEAM)
);
private static final TranslationMode DEFAULT_MODE = TranslationMode.FAST;
private EngineAliasRegistry() {
}
public static TranslationMode normalizeToMode(String engineName) {
if (engineName == null || engineName.isBlank()) {
return DEFAULT_MODE;
}
return ALIAS_TO_MODE.getOrDefault(engineName.trim().toLowerCase(), DEFAULT_MODE);
}
}