[DictTanog] 为词典内容批量添加AI功能

DictTango提供了几个内置javascript函数,可以让用户在不重新打包mdx的情况加上内容的AI功能, 显示效果为在内容的后面加上一个AI按钮,点击按钮后进行调用指定的AI Prompt并实时显示AI输出。

这几个内置函数分别是__addAI_ByName, __addAI_ByTag, __addAI_ByCssClass, 和 __addAI_BySelector,

使用方法

  1. 查看MDX的html源内容,找出要进行发音的html元素
    小技巧: 去设置->词典设置里打开调试模式,然后用词典查一个词,相关的html会在sdcard里DictTango/Logs目录里生成,直接打开html就可以看到里面的内容了
  2. 在词典管理里,编辑相关的词典,然后添加相关函数及其参数到词典的内联脚本就可以了


根据网页元素的名字量添加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}是必需的占位符

你是一位专业的中英双语翻译专家,请将我提供的英文内容准确翻译成自然、流畅、符合中文> 表达习惯的中文。

翻译要求:

  1. 保持原文意思准确,不遗漏信息。
  2. 优先使用自然中文表达,而不是逐字直译。
  3. 根据上下文自动调整语气与风格(正式、商务、日常、学术等)。
  4. 如果原文存在双关、俚语或文化背景,请给出最贴切的中文表达。
  5. 保留原文中的专有名词、人名、品牌名或技术术语,并在必要时附上中文解释。
  6. 如果句子有多种合理译法,请给出最佳版本,并可简要说明原因。
  7. 请采用“英文原文 + 中文翻译”逐句对照格式输出

请翻译以下英文内容:
{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>

3. 再次打开词典内容,就会看到有AI按钮生成,点击按钮就可以看到AI内容输出

6 Likes