Lingara Lingara Dokumentation Ratgeber API Bibliotheken Apps Erstellen Web-App
Sprache: Deutsch

Die Tutor-Notiz

Diese Seite ist aus dem Englischen übersetzt. Wenn die beiden voneinander abweichen, ist die englische Seite maßgeblich. Englische Seite lesen

Ihre App kann dem Tutor von Lingara eine Zeile Kontext mitgeben, etwa welche Wörter der Lernende gerade geübt hat, indem sie ihrer Antwort eine tutor_note hinzufügt. Die Notiz erreicht den Tutor nur, wenn Ihr Manifest sie deklariert und der Lernende sie bei der Installation Ihrer App aktiviert hat. Um diese Wahl zu ändern, deinstalliert der Lernende Ihre App und installiert sie erneut.

Was Lingara damit macht

  • Ein Zeilenumbruch wird zu einem Leerzeichen.
  • Steuerzeichen und Richtungsüberschreibungen werden entfernt.
  • Eine Notiz, die länger als 280 Zeichen ist, wird auf 280 gekürzt und endet auf …. Zeichen werden als Unicode-Skalarwerte gezählt, nicht als Bytes oder Glyphen auf dem Bildschirm.
  • Eine Notiz, die Ihr Manifest nicht deklariert oder die der Lernende nicht erlaubt hat, wird verworfen.

Wie der Tutor sie liest

Der Tutor liest Ihre Notiz als zitierten Text eines Dritten, nie als Anweisung. Eine Notiz, die Lingaras Sicherheitsprüfung ablehnt, wird verworfen, und der Zug des Lernenden geht ohne sie weiter. Der Lernende sieht die Notiz nie.

Eine gute Notiz

Eine gute Notiz ist eine einfache Tatsache, die der Tutor verwenden kann, etwa „Der Lernende hat gerade 5 Wörter aus seinem Japanisch-Plan wiederholt.“ Sie sagt, was der Lernende tut, nicht was der Tutor tun soll. Lassen Sie Anweisungen, Urteile über den Lernenden und alles weg, was der Lernende nicht auf Ihrer Karte gesehen hat.

Sprache des Codebeispiels

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);
}