حسنًا، انتهى بي الأمر إلى إعادة استخدام بعض الأدوات المساعدة المتاحة حاليًا (لكنها غير مستخدمة في مجتمعنا) والتي تم شحنها بالفعل مع Discourse.
| الموقع | الإعداد | القيمة | إعادة تسمية التسمية (تخصيص → نص) |
|---|---|---|---|
| استفسار الذكاء الاصطناعي (المنشورات/المواضيع) | ai_helper_translator_agent | وكيل البحث المخصص | discourse_ai.ai_helper.prompts.translate → تسمية البحث المخصص |
| ترجمة المحرر | ai_helper_markdown_tables_agent | وكيل الترجمة المدمج | discourse_ai.ai_helper.prompts.markdown_table → ترجمة |
| منسّق Markdown في المحرر | ai_helper_smart_dates_agent | وكيل منسّق Markdown (تم نقله) | discourse_ai.ai_helper.prompts.replace_dates → تنسيق كـ Markdown |
ثم مقتطفان:
javascripts/discourse/api-initializers/ai-helper-slots.gjs
import { apiInitializer } from "discourse/lib/api";
const AI_HELPER_ICONS = {
translate: "ph-dt-magnifying-glass", // for forum search agent
markdown_table: "ph-dt-translate", // composer: built-in Translator
replace_dates: "ph-dt-markdown", // composer: Markdown formatter
};
export default apiInitializer((api) => {
api.getCurrentUser()?.ai_helper_prompts?.forEach((prompt) => {
prompt.icon = AI_HELPER_ICONS[prompt.name] ?? prompt.icon;
});
});
common.scss
.ai-composer-helper-menu ul.ai-helper-options li[data-value="translate"] {
display: none;
}
ملاحظة: أنا أستخدم مجموعة أيقونات Phosphor مخصصة؛ يمكن دمج الأيقونات الجديدة في Font Awesome أو Material أو أي مجموعة أيقونات أخرى.