mirror of
https://github.com/the1812/Bilibili-Evolved.git
synced 2025-11-04 21:22:45 +08:00
40 lines
1.2 KiB
TypeScript
40 lines
1.2 KiB
TypeScript
import { defineComponentMetadata } from '@/components/define'
|
|
import MachineTranslator from '@/components/i18n/machine-translator/MachineTranslator.vue'
|
|
|
|
const entry = async () => {
|
|
const injectButton = (element: HTMLElement) => {
|
|
const textElements = dqa(element, '.text, .text-con')
|
|
if (textElements.length === 0) {
|
|
return
|
|
}
|
|
textElements.forEach((textElement: HTMLElement) => {
|
|
if (textElement.nextElementSibling?.classList.contains('translate-container')) {
|
|
return
|
|
}
|
|
const translator = new MachineTranslator({
|
|
propsData: {
|
|
text: textElement.innerText,
|
|
},
|
|
}).$mount()
|
|
textElement.insertAdjacentElement('afterend', translator.$el)
|
|
})
|
|
}
|
|
const { forEachCommentItem } = await import('@/components/utils/comment-apis')
|
|
forEachCommentItem({
|
|
added: item => {
|
|
const { element } = item
|
|
item.onRepliesUpdate = replies => replies.forEach(r => injectButton(r.element))
|
|
injectButton(element)
|
|
},
|
|
})
|
|
}
|
|
export const component = defineComponentMetadata({
|
|
name: 'commentsTranslate',
|
|
displayName: '评论翻译',
|
|
description: {
|
|
'zh-CN': '在每条评论下方添加翻译按钮.',
|
|
},
|
|
tags: [componentsTags.utils, componentsTags.feeds],
|
|
entry,
|
|
})
|