Lingara Lingara दस्तावेज़ मार्गदर्शिकाएँ API लाइब्रेरी ऐप बनाएं वेब ऐप
भाषा: हिन्दी

ट्यूटर नोट

यह पेज अंग्रेज़ी से अनुवादित है। अगर दोनों में अंतर हो, तो अंग्रेज़ी पेज सही है। अंग्रेज़ी पेज पढ़ें

आपका ऐप अपने जवाब में tutor_note जोड़कर Lingara के ट्यूटर को संदर्भ की एक पंक्ति दे सकता है, जैसे कि शिक्षार्थी ने अभी किन शब्दों का अभ्यास किया। नोट ट्यूटर तक केवल तब पहुँचता है जब आपका मेनिफ़ेस्ट इसे घोषित करता है और शिक्षार्थी ने आपका ऐप इंस्टॉल करते समय इसे चालू किया हो। उस विकल्प को बदलने के लिए, शिक्षार्थी आपका ऐप अनइंस्टॉल करता है और उसे फिर से इंस्टॉल करता है।

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