Skip to main content
التوثيق
مركز التعلّم

أتقن إشراف المحتوى عبر أدلة شاملة، وشروحات عملية، ووثائق API

روابط سريعة

كشف اللغة

يتعرّف Discuse على لغة الرسالة كي تتمكّن من تطبيق قواعد الإشراف المناسبة قبل اتخاذ أي إجراء بشأنها. أرسل النص إلى POST https://api.discuse.com/api/v2/check مع تفعيل check_language، واقرأ رمز اللغة المكتشفة من results.language.language. أضف expected_language لتمييز المحتوى الذي ليس باللغة التي تشترطها.

ما فائدة كشف اللغة؟

يتيح لك كشف اللغة مسبقًا ما يلي:

  • تطبيق حدود إشراف مخصّصة لكل لغة
  • توجيه المحتوى إلى المراجعين أو فريق الدعم المناسبين
  • فرض سياسة لغة محددة داخل المجتمع
  • تصفية الخلاصات أو توطينها حسب اللغة

كيف أكشف لغة النص؟

curl -X POST https://api.discuse.com/api/v2/check \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{
    "content": {
      "text": "Bonjour, comment allez-vous aujourd'\''hui?"
    },
    "settings": {
      "check_language": true
    }
  }'

تنسيق الاستجابة

{
  "has_violations": false,
  "cached": false,
  "results": {
    "language": {
      "language": "fr",
      "confidence": 0.99,
      "hit": false
    }
  }
}

يوجد رمز اللغة المكتشفة في results.language.language. عند تفعيل فرض expected_language، تتم تعبئة detected وexpected أيضًا (انظر أدناه).

ما الحقول التي تُرجعها نتيجة اللغة؟

الحقل النوع المعنى
language string رمز اللغة المكتشفة (مثل en وfr وes)
confidence number درجة الثقة في الكشف (0.0–1.0)
expected string رمز اللغة المفروضة عند تعيين expected_language
detected string الرمز المكتشف (اسم بديل لـ language، ويُعبّأ أثناء الفرض)
hit bool تكون القيمة True عندما لا تطابق اللغة المكتشفة قيمة expected
delete_only bool عندما تكون القيمة true، ينبغي حذف الرسالة دون أي عقوبة إضافية
error string يظهر فقط عند فشل الكشف

ما اللغات المدعومة؟

يُرجع Discuse رموز لغات بأسلوب ISO. تشمل اللغات التي يُكشف عنها عادةً ما يلي:

الرمز اللغة الرمز اللغة
en الإنجليزية de الألمانية
es الإسبانية fr الفرنسية
it الإيطالية pt البرتغالية
nl الهولندية pl البولندية
ru الروسية uk الأوكرانية
zh الصينية ja اليابانية
ko الكورية ar العربية
hi الهندية tr التركية

اقرأ القيمة من results.language.language مباشرةً بدلًا من ترميز قائمة ثابتة داخل تطبيقك.

كيف أفرض لغة محددة؟

عيّن expected_language إلى الرمز الذي تحتاجه. عندما تختلف اللغة المكتشفة، تصبح language.hit مساوية لـ true وتتم تعبئة expected/detected:

الطلب:

{
  "content": { "text": "Hola, cómo estás?" },
  "settings": {
    "check_language": true,
    "expected_language": "en"
  }
}

الاستجابة:

{
  "has_violations": true,
  "message": "Content is not in expected language",
  "results": {
    "hits": true,
    "language": {
      "language": "es",
      "detected": "es",
      "expected": "en",
      "confidence": 0.97,
      "hit": true
    }
  }
}

حالات الاستخدام

منتديات باللغة الإنجليزية فقط

async function validatePost(post) {
  const result = await fetch('https://api.discuse.com/api/v2/check', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'X-API-Key': process.env.DISCUSE_API_KEY
    },
    body: JSON.stringify({
      content: { text: post.content },
      settings: { check_language: true, expected_language: 'en' }
    })
  }).then(r => r.json());

  if (result.results.language.hit) {
    return {
      approved: false,
      reason: 'Posts must be in English',
      detected_language: result.results.language.language
    };
  }
  return { approved: true };
}

التوجيه متعدد اللغات

async function routeContent(content) {
  const result = await checkLanguage(content.text);
  const language = result.results.language.language;

  const moderatorQueue = {
    en: 'english-moderation',
    es: 'spanish-moderation',
    fr: 'french-moderation',
    de: 'german-moderation',
    default: 'general-moderation'
  };

  const queue = moderatorQueue[language] || moderatorQueue.default;
  await addToQueue(queue, content);
  return { queued: true, language };
}

الدمج مع الإشراف على المحتوى

شغّل كشف اللغة إلى جانب تحليل المشاعر ورصد الرسائل المزعجة في طلب واحد:

{
  "content": {
    "text": "User message in any language"
  },
  "settings": {
    "check_language": true,
    "check_sentiment": true,
    "check_spam": true
  }
}

بعد ذلك يمكن للغة المكتشفة أن تحدد حدود تحليل المشاعر الخاصة بكل لغة:

const LANGUAGE_THRESHOLDS = {
  en: { toxicity: 0.7, profanity: 0.6 },
  de: { toxicity: 0.6, profanity: 0.5 },
  es: { toxicity: 0.7, profanity: 0.7 },
  default: { toxicity: 0.7, profanity: 0.6 }
};

async function moderateContent(text) {
  const result = await checkText(text); // check_language + check_sentiment
  const language = result.results.language.language;
  const thresholds = LANGUAGE_THRESHOLDS[language] || LANGUAGE_THRESHOLDS.default;
  const sentiment = result.results.sentiment;

  if (sentiment.toxicity > thresholds.toxicity) {
    return { action: 'block', reason: 'toxic_content' };
  }
  if (sentiment.profanity > thresholds.profanity) {
    return { action: 'flag', reason: 'profanity' };
  }
  return { action: 'allow' };
}

أفضل الممارسات

مراعاة النصوص القصيرة

يكون الكشف أقل موثوقية مع السلاسل النصية القصيرة جدًا. تجاوز الفحص إذا كان النص دون حد أدنى للطول:

async function smartLanguageCheck(text) {
  if (text.length < 20) {
    return { language: 'unknown', confidence: 0 };
  }
  const result = await checkLanguage(text);
  return result.results.language;
}

تخزين النتائج مؤقتًا

async function getLanguageWithCache(text, contentId) {
  const cached = await cache.get(`lang:${contentId}`);
  if (cached) return JSON.parse(cached);

  const result = await checkLanguage(text);
  const language = result.results.language;
  await cache.set(`lang:${contentId}`, JSON.stringify(language), 'EX', 3600);
  return language;
}

حدود الاستخدام

يُحتسب كشف اللغة من حصتك في تحليل النصوص:

الخطة التحليلات الشهرية
Basic 1,000
Gold 5,000
Platinum 15,000
Ultimate 30,000

لا تُحتسب الاستجابات المخزّنة مؤقتًا من حصتك.

أمثلة التكامل

Node.js

const checkLanguage = async (text, expectedLanguage = null) => {
  const settings = { check_language: true };
  if (expectedLanguage) settings.expected_language = expectedLanguage;

  const response = await fetch('https://api.discuse.com/api/v2/check', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'X-API-Key': process.env.DISCUSE_API_KEY
    },
    body: JSON.stringify({ content: { text }, settings })
  });

  return response.json();
};

Python

import os
import requests

def check_language(text, expected_language=None):
    settings = {'check_language': True}
    if expected_language:
        settings['expected_language'] = expected_language

    response = requests.post(
        'https://api.discuse.com/api/v2/check',
        headers={
            'Content-Type': 'application/json',
            'X-API-Key': os.environ['DISCUSE_API_KEY']
        },
        json={'content': {'text': text}, 'settings': settings}
    )
    return response.json()

الخطوات التالية

كتبه فريق Discuse · آخر تحديث June 2026

مقالات ذات صلة

تحليل النص واكتشاف المشاعر

اكتشف الرسائل المزعجة والسمّية والألفاظ النابية، وحلّل المشاعر في المحتوى النصي

اكتشاف NSFW في الصور

اكتشف الصور غير الملائمة ومحتوى البالغين وقم بتصفيتها تلقائيًا

اكتشاف الرسائل المزعجة

تصفية الرسائل المزعجة في النصوص والرسائل باستخدام AI