Lingara Lingara Mwongozo Miongozo API Maktaba Programu Unda Programu ya wavuti
Lugha: Kiswahili

Dokezo kwa mkufunzi

Ukurasa huu umetafsiriwa kutoka Kiingereza. Ikiwa hizi mbili zinatofautiana, ukurasa wa Kiingereza ndio sahihi. Soma ukurasa wa Kiingereza

Programu yako inaweza kumpa mkufunzi wa Lingara mstari mmoja wa muktadha, kama vile maneno ambayo mwanafunzi ameyafanyia mazoezi hivi punde, kwa kuongeza tutor_note kwenye jibu lake. Dokezo humfikia mkufunzi tu wakati manifest yako inalitangaza na mwanafunzi aliliwasha alipokuwa akisakinisha programu yako. Ili kubadilisha chaguo hilo, mwanafunzi huondoa programu yako na kuisakinisha tena.

Kile Lingara hulifanyia

  • Kivunja-mstari huwa nafasi.
  • Herufi za udhibiti na vibatilishi vya mwelekeo huondolewa.
  • Dokezo refu kuliko herufi 280 hukatwa hadi 280 na huishia kwa …. Herufi huhesabiwa kama thamani za scalar za Unicode, si baiti au glifu za skrini.
  • Dokezo ambalo manifest yako haitangazi, au ambalo mwanafunzi hakuliruhusu, huachwa.

Jinsi mkufunzi analisoma

Mkufunzi husoma dokezo lako kama maandishi yaliyonukuliwa kutoka kwa mtu wa tatu, kamwe si kama agizo. Dokezo ambalo ukaguzi wa usalama wa Lingara unalikataa huachwa, na zamu ya mwanafunzi huendelea bila hilo. Mwanafunzi haoni kamwe dokezo hilo.

Dokezo zuri

Dokezo zuri ni ukweli mmoja rahisi ambao mkufunzi anaweza kuutumia, kama vile “Mwanafunzi amepitia maneno 5 kutoka kwenye mpango wake wa Kijapani hivi punde.” Linasema kile mwanafunzi anachofanya, si kile mkufunzi anachopaswa kufanya. Acha nje maagizo, hukumu kuhusu mwanafunzi, na chochote ambacho mwanafunzi hakukiona kwenye kadi yako.

Lugha ya mfano wa msimbo

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