DictTango提供了几个内置javascript函数,可以让用户在不重新打包mdx的情况加上内容的AI功能, 显示效果为在内容的后面加上一个AI按钮,点击按钮后进行调用指定的AI Prompt并实时显示AI输出。
这几个内置函数分别是__addAI_ByName, __addAI_ByTag, __addAI_ByCssClass, 和 __addAI_BySelector,
使用方法
- 查看MDX的html源内容,找出要进行发音的html元素
小技巧: 去设置->词典设置里打开调试模式,然后用词典查一个词,相关的html会在sdcard里DictTango/Logs目录里生成,直接打开html就可以看到里面的内容了 - 在词典管理里,编辑相关的词典,然后添加相关函数及其参数到词典的内联脚本就可以了
根据网页元素的名字量添加AI按钮
函数名 :__addAI_ByName(elementName, promptName, outputElementId, iconSize)
参数->elementName:网页元素的名字
参数->promptName:DictTango中的添加的Prompt名称,可以参考 这里 看如何添加AI Prompt
参数->outputElementId:AI结果输出的目标网页元素,如果是null就会自动在当前内容下面显示AI结果,如果放"_blank"就会在底部弹出窗口中显示AI结果输出
参数->iconSize:按钮的图标大小,如果没有指定或者null,就按默认大小,
适用情况
<div name="word">徘徊</div>
<div name="word">开心</div>
<div name="word">冲突</div>
<div name="word">畅顺</div>
示例代码
__addAI_ByName('word','CHINESE_WORD_DEF');
__addAI_ByName('word','CHINESE_WORD_DEF', '_blank');
__addAI_ByName('word','CHINESE_WORD_DEF', '_blank', '1em');
根据网页元素的css样式class批量添加AI按钮
函数名 : __addAI_ByCssClass(cssClass, promptName, outputElementId, iconSize)
参数->cssClass:网页元素的css样式class
参数->promptName:参照__addAI_ByName
参数->outputElementId:参照__addAI_ByName
参数->iconSize:参照__addAI_ByName
适用情况
<span class="pg_en">I am a boy</span>
<span class="pg_cn">我是一个男生</span>
<span class="pg_en">I am a girl</span>
<span class="pg_cn">我是一个女生</span>
示例代码
__addAI_ByCssClass('pg_en','CHINESE_WORD_DEF');
__addAI_ByCssClass('pg_cn','CHINESE_WORD_DEF', '_blank');
__addAI_ByCssClass('pg_en','CHINESE_WORD_DEF', '_blank', '1em');
根据网页元素的标记批量添加AI按钮
函数名 :__addAI_ByTag(tagName, promptName, outputElementId, iconSize)
参数->tagName:网页元素标记,例如span, div及其它定义的标记
参数->promptName:参照__addAI_ByName
参数->outputElementId:参照__addAI_ByName
参数->iconSize:参照__addAI_ByName
适用情况
<en>I am a boy</en>
<cn>我是一个男生</cn>
<en>I am a girl</en>
<cn>我是一个女生</cn>
示例代码
__addAI_ByTag('en','CHINESE_WORD_DEF');
__addAI_ByTag('cn','CHINESE_WORD_DEF', '_blank');
__addAI_ByTag('en','CHINESE_WORD_DEF', '_blank', '1em');
高级用法:根据指定的选择器组匹配的网页中的元素批量添加TTS发音
函数名 :__addAI_BySelector(selector, promptName, outputElementId, iconSize)
参数->selector: 一个DOMString包含一个或多个匹配的选择器,例如span[data-lang=‘en’]。更多选择器详情,请参考以下网址: Document.querySelectorAll - Web API | MDN
参数->promptName:参照__addAI_ByName
参数->outputElementId:参照__addAI_ByName
参数->iconSize:参照__addAI_ByName
适用情况
<span data-lang="en">I am a boy</span >
<span data-lang="cn">我是一个男生</span>
<span data-lang="en">I am a girl</span>
<span data-lang="cn">我是一个女生</span>
示例代码
__addAI_BySelector("span[data-lang='en']", 'CHINESE_WORD_DEF');
__addAI_BySelector("span[data-lang='en']", 'CHINESE_WORD_DEF','_blank');
__addAI_BySelector("span[data-lang='cn']", 'CHINESE_WORD_DEF','_blank', '1em');
使用示例,用AI Prompt实现词典内容的英译中
1. 添加以下AI Prompt 并命名为 EN_TO_CN, {INPUT_CONTENT}是必需的占位符
你是一位专业的中英双语翻译专家,请将我提供的英文内容准确翻译成自然、流畅、符合中文> 表达习惯的中文。
翻译要求:
- 保持原文意思准确,不遗漏信息。
- 优先使用自然中文表达,而不是逐字直译。
- 根据上下文自动调整语气与风格(正式、商务、日常、学术等)。
- 如果原文存在双关、俚语或文化背景,请给出最贴切的中文表达。
- 保留原文中的专有名词、人名、品牌名或技术术语,并在必要时附上中文解释。
- 如果句子有多种合理译法,请给出最佳版本,并可简要说明原因。
- 请采用“英文原文 + 中文翻译”逐句对照格式输出
请翻译以下英文内容:
{INPUT_CONTENT}
2. 假设词典内容如下,编辑词典详情,在"JS脚本注入中" 输入 __addAI_ByName(‘en’,‘EN_TO_CN’, ‘_blank’, ‘1.2em’)
<div name="en"> I've been such a fool, Vassili. Man will always be a man. There is no new man. We tried so hard to create a society that was equal, where there'd be nothing to envy your neighbour. But there's always something to envy. A smile, a friendship, something you don't have and want to appropriate. In this world, even a Soviet one, there will always be rich and poor. Rich in gifts, poor in gifts. Rich in love, poor in love.</div>