Lingara Lingara المستندات أدلة التعلّم API المكتبات التطبيقات البناء تطبيق الويب
اللغة: العربية

ملاحظة المدرّس

هذه الصفحة مترجمة من الإنجليزية. إذا اختلفت النسختان، فالصفحة الإنجليزية هي الصحيحة. اقرأ الصفحة الإنجليزية

يمكن لتطبيقك أن يقدّم لمدرّس Lingara سطرًا واحدًا من السياق، مثل الكلمات التي تدرّب عليها المتعلّم للتو، بإضافة tutor_note إلى ردّه. لا تصل الملاحظة إلى المدرّس إلا عندما يعلنها بيانك و يكون المتعلّم قد فعّلها عند تثبيت تطبيقك. ولتغيير هذا الاختيار، يلغي المتعلّم تثبيت تطبيقك ثم يثبّته مجددًا.

ما تفعله Lingara بها

  • يصبح فاصل الأسطر مسافة.
  • تُزال أحرف التحكم وأحرف تجاوز الاتجاه.
  • الملاحظة الأطول من 280 حرفًا تُقصّ إلى 280 وتنتهي بـ …. تُعدّ الأحرف بوصفها قيمًا قياسية في Unicode، لا بايتات ولا رموزًا مرئية على الشاشة.
  • تُسقَط الملاحظة التي لا يعلنها بيانك، أو لم يسمح بها المتعلّم.

كيف يقرؤها المدرّس

يقرأ المدرّس ملاحظتك بوصفها نصًا مقتبسًا من طرف ثالث، ولا يعدّها أبدًا تعليمات. والملاحظة التي يرفضها فحص الأمان في Lingara تُسقَط، ويستمر دور المتعلّم من دونها. لا يرى المتعلّم الملاحظة أبدًا.

ملاحظة جيدة

الملاحظة الجيدة حقيقة واحدة بسيطة يستطيع المدرّس استخدامها، مثل «راجع المتعلّم للتو 5 كلمات من خطته في اليابانية.» إنها تقول ما يفعله المتعلّم، لا ما ينبغي أن يفعله المدرّس. تجنّب التعليمات، والأحكام على المتعلّم، وأي شيء لم يره المتعلّم في بطاقتك.

لغة مثال الشيفرة

TypeScript

function withNote(request: AppRenderRequest) {
  const note = planLine(request);
  // Plain text, at most 280 characters; the tutor reads it, the learner does not.
  return note === "" ? todayCard(0) : reply(todayCard(0)).tutorNote(note);
}

Rust

async fn render(seen: Seen, request: AppRenderRequest) -> Result<Reply, BoxError> {
    let (lang, progress) = shared_plan(&request);
    let count = seen.lock().map_err(|_| "poisoned")?.get(&request.subject).copied().unwrap_or(0);
    let card = today_card("Today's five", &lang)?;
    // Plain text the learner's tutor can read: at most 280 characters.
    let note = match progress {
        Some((done, total)) => format!("The learner has reviewed {count} words with this app today; {done} of {total} sets done."),
        None => format!("The learner has reviewed {count} words with this app today."),
    };
    Ok(reply(card).tutor_note(note)?)
}

Go

card, err := lingaraapps.NewCard().Heading("Daily five", 1).Text("雨 · 雪 · 风 · 云 · 雷").Build()
if err != nil {
	return nil, err
}
// Plain text, at most 280 characters, for Lingara's tutor to use.
return lingaraapps.Reply(card).
	TutorNote("The learner is reviewing weather words today."), nil

Java

import com.getlingara.apps.Card;
import com.getlingara.apps.Reply;

Card card = Card.card().heading("Today's five", 1).term("雨", "yǔ", "rain", "zh").build();
// Plain text, at most 280 characters; the tutor reads it beside the card.
return Reply.reply(card).tutorNote("The learner is reviewing weather words today.");

Kotlin

import com.getlingara.apps.kotlin.Reply
import com.getlingara.apps.kotlin.card
import com.getlingara.apps.kotlin.reply

val c =
    card {
        heading("Today's five", 1)
        term("雨", reading = "yǔ", gloss = "rain", lang = "zh")
    }
// Plain text, at most 280 characters; the tutor reads it beside the card.
return reply(c).tutorNote("The learner is reviewing weather words today.")

Ruby

note = plan_line(request)
# Plain text, at most 280 characters; the tutor reads it, the learner does not.
note.empty? ? today_card(0) : Lingara::Apps.reply(today_card(0)).tutor_note(note)

PHP

use Lingara\Apps\Reply;

function withNote(AppRenderRequest $request): CardModel|Reply
{
    $note = planLine($request);
    // Plain text, at most 280 characters; the tutor reads it, the learner does not.
    return $note === '' ? todayCard(0) : Reply::of(todayCard(0))->tutorNote($note);
}