diff --git a/packages/backend/src/remote/activitypub/renderer/note.ts b/packages/backend/src/remote/activitypub/renderer/note.ts index b29246edf..edeeb4222 100644 --- a/packages/backend/src/remote/activitypub/renderer/note.ts +++ b/packages/backend/src/remote/activitypub/renderer/note.ts @@ -1,4 +1,5 @@ import { In, IsNull } from "typeorm"; +import { detect as detectLanguage } from "tinyld"; import config from "@/config/index.js"; import type { Note, IMentionedRemoteUsers } from "@/models/entities/note.js"; import type { DriveFile } from "@/models/entities/drive-file.js"; @@ -114,6 +115,11 @@ export default async function renderNote( }), ); + const lang = detectLanguage(text); + const contentMap = lang ? { + [lang]: content + } : null; + const emojis = await getEmojis(note.emojis); const apemojis = emojis.map((emoji) => renderEmoji(emoji)); @@ -152,6 +158,7 @@ export default async function renderNote( attributedTo, summary, content, + contentMap, source: { content: text, mediaType: "text/x.misskeymarkdown", diff --git a/packages/backend/src/remote/activitypub/type.ts b/packages/backend/src/remote/activitypub/type.ts index 2258241b6..0e63f3ed5 100644 --- a/packages/backend/src/remote/activitypub/type.ts +++ b/packages/backend/src/remote/activitypub/type.ts @@ -14,6 +14,7 @@ export interface IObject { inReplyTo?: any; replies?: ICollection; content?: string; + contentMap?: obj; name?: string; startTime?: Date; endTime?: Date;