Lingara Lingara Belge Rêbername API Pirtûkxane Sepan Avakirin Sepana webê
Ziman: Kurdî

Nota mamoste

Ev rûpel ji Îngilîzî hatiye wergerandin. Heke her du ji hev cuda bin, rûpela Îngilîzî rast e. Rûpela Îngilîzî bixwîne

Sepana te dikare bi zêdekirina tutor_note li bersiva xwe, rêzek çarçoveyê pêşkêşî mamosteyê Lingara bike, wek kîjan peyvên ku xwendekar nû li ser wan xebitiye. Not tenê digihîje mamoste dema ku manifestê te wê ragihîne û xwendekar dema sazkirina sepana te ew vekiribe. Ji bo guhertina wê bijartinê, xwendekar sepana te radike û dîsa saz dike.

Lingara çi pê dike

  • Rêzbirînek dibe valahiyek.
  • Tîpên kontrolê û serdestkirinên alî têne rakirin.
  • Notek ji 280 tîpan dirêjtir li 280 tê birîn û bi … diqede. Tîp wek nirxên skalar ên Unicode têne hejmartin, ne wek byte an glîfên ekranê.
  • Notek ku manifestê te ranegihîne, an xwendekar destûr nedabe, tê avêtin.

Mamoste wê çawa dixwîne

Mamoste nota te wek nivîseke jêgirtî ji aliyekî sêyem dixwîne, qet wek talîmatekê na. Notek ku kontrola ewlehiyê ya Lingara red dike tê avêtin, û dora xwendekar bê wê berdewam dike. Xwendekar qet notê nabîne.

Noteke baş

Noteke baş rastiyeke sade ye ku mamoste dikare bi kar bîne, wek “Xwendekar nû 5 peyv ji plana xwe ya Japonî dubare kirin.” Ew dibêje xwendekar çi dike, ne ku divê mamoste çi bike. Talîmatan, dadbariyên li ser xwendekar, û her tiştê ku xwendekar li ser karta te nedîtiye nexe tê de.

Zimanê mînaka kodê

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