Lingara Lingara Dokumentasi Panduan API Pustaka Aplikasi Buat Aplikasi web
Bahasa: Bahasa Indonesia

Catatan untuk tutor

Halaman ini diterjemahkan dari bahasa Inggris. Jika keduanya berbeda, halaman bahasa Inggris yang benar. Baca halaman bahasa Inggris

Aplikasi Anda dapat menawarkan satu baris konteks kepada tutor Lingara, seperti kata-kata yang baru saja dilatih pelajar, dengan menambahkan tutor_note ke balasannya. Catatan hanya sampai ke tutor jika manifest Anda mendeklarasikannya dan pelajar mengaktifkannya saat memasang aplikasi Anda. Untuk mengubah pilihan itu, pelajar mencopot pemasangan aplikasi Anda lalu memasangnya lagi.

Apa yang dilakukan Lingara terhadapnya

  • Jeda baris menjadi spasi.
  • Karakter kontrol dan karakter penimpa arah dihapus.
  • Catatan yang lebih panjang dari 280 karakter dipotong menjadi 280 dan diakhiri dengan …. Karakter dihitung sebagai Unicode scalar value, bukan byte atau glyph di layar.
  • Catatan yang tidak dideklarasikan manifest Anda, atau tidak diizinkan pelajar, akan dibuang.

Cara tutor membacanya

Tutor membaca catatan Anda sebagai teks kutipan dari pihak ketiga, tidak pernah sebagai instruksi. Catatan yang ditolak oleh pemeriksaan keamanan Lingara akan dibuang, dan giliran pelajar berlanjut tanpanya. Pelajar tidak pernah melihat catatan itu.

Catatan yang baik

Catatan yang baik adalah satu fakta sederhana yang dapat digunakan tutor, seperti “Pelajar baru saja mengulas 5 kata dari rencana bahasa Jepang mereka.” Catatan itu menyatakan apa yang sedang dilakukan pelajar, bukan apa yang harus dilakukan tutor. Jangan sertakan instruksi, penilaian tentang pelajar, dan apa pun yang tidak dilihat pelajar di kartu Anda.

Bahasa contoh kode

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