کارتها
این صفحه از انگلیسی ترجمه شده است. اگر این دو با هم تفاوت داشته باشند، صفحهٔ انگلیسی درست است. خواندن صفحهٔ انگلیسی
کارت فهرست کوتاهی از عناصر است که Lingara آن را به سبک خودش ترسیم میکند. هیچ فیلد ورودی، تصویر، اسکریپت یا نشانهگذاریای در کار نیست. یک برنامه نمیتواند کد خودش یا ظاهر خودش را روی صفحهٔ زبانآموز بگذارد، بنابراین هر کارت مثل بقیهٔ Lingara خوانده میشود. پاسخ شما JSON است: یک card که elements خود را در بر دارد، و بهطور اختیاری یک tutor_note (نگاه کنید به یادداشت معلم).
عناصر
هر عنصر یک type دارد که یکی از این هشت مورد است:
| عنصر | فیلدها | آنچه نشان میدهد |
|---|---|---|
heading | text, level | یک عنوان. مقدار level برابر 1 یا 2 است و هر مقدار دیگری به 2 تبدیل میشود. متن آن حداکثر 80 نویسه است. |
text | text, lang | یک بند با حداکثر 600 نویسه. این تنها جایی است که شکست خط حفظ میشود. |
term | word, reading, gloss, lang | واژهای برای یادگیری. فقط word الزامی است. واژه حداکثر 60 نویسه، خوانش 120 و معنی 160 نویسه است. |
list | items | تا 20 مورد. هر مورد یک text یا یک term است، با همان فیلدهای عنصر همنام. |
progress | value, label | یک نوار پیشرفت. value از 0 تا 1 است و برچسب حداکثر 60 نویسه است. |
divider | خطی میان بخشهای کارت. | |
button | label, action, style | دکمهای که action خود را به سرور شما میفرستد. style یا primary است یا secondary، و برچسب حداکثر 32 نویسه است. |
link | label, url | پیوندی که زبانآموز، پس از پرسش Lingara، در مرورگر خود باز میکند. برچسب حداکثر 60 نویسه است. |
یک lang برچسب زبانی مانند ja است، تا Lingara خط درست را ترسیم کند. مقداری که برچسب زبان نباشد حذف میشود.
محدودیتها
- یک کارت حداکثر 24 عنصر دارد. عناصر پس از عنصر 24 کنار گذاشته میشوند.
- یک فهرست حداکثر 20 مورد دارد. موارد پس از مورد 20 کنار گذاشته میشوند و فهرست خالی هم کنار گذاشته میشود.
- یک کارت حداکثر 4 دکمه دارد. دکمههای پس از دکمهٔ 4 کنار گذاشته میشوند.
- متنی که از حد خود بلندتر باشد بریده میشود تا جا شود و با
…پایان مییابد. نویسهها بهصورت مقادیر اسکالر Unicode شمرده میشوند. - نویسههای کنترلی و نویسههای تغییر جهت از هر رشته حذف میشوند.
- پیوندی که نشانیاش HTTPS نباشد، نام کاربری داشته باشد یا به یک نشانی IP اشاره کند کنار گذاشته میشود.
- دکمهای که
actionآن بیش از 64 نویسه باشد، یا چیزی جز حروف، ارقام،_،.،:و-به کار ببرد، کنار گذاشته میشود. - عنصری که پس از این قواعد هیچ متنی در آن نماند کنار گذاشته میشود.
این قواعد سهلگیرند: Lingara آنچه جا نمیشود را میبُرد یا کنار میگذارد و بقیه را ترسیم میکند. کیتها همین قواعد را پیش از پاسخ شما اعمال میکنند، تا ببینید چه چیزی تغییر خواهد کرد.
تجزیهٔ سختگیرانه
واژگان بسته است. یک نوع عنصر ناشناخته، فیلدی که عنصر ندارد، مقداری با نوع JSON نادرست، یا پاسخی که اصلاً JSON نیست، کل پاسخ را به کارت جایگزین تبدیل میکند. Lingara هرگز بخشی از کارتی را که نتوانسته بخواند ترسیم نمیکند.
اندازه و زمان
یک پاسخ حداکثر میتواند 32 KiB باشد. Lingara به سرور شما 3 ثانیه برای پاسخ به یک رندر و 5 ثانیه برای پاسخ به یک کنش فرصت میدهد و هیچکدام را دوباره امتحان نمیکند. پاسخ باید وضعیت 200 و نوع محتوای JSON داشته باشد. تغییرمسیرها دنبال نمیشوند.
دکمهها و کنشها
وقتی زبانآموز دکمهای را میزند، Lingara یک درخواست کنش حاوی action همان دکمه به سرور شما میفرستد. سرور شما با یک کارت تازه پاسخ میدهد که جایگزین کارت قبلی میشود. همان فشار ممکن است دو بار برسد، پس هر کنش را برای تکرار ایمن کنید.
وقتی کارت شکست میخورد
وقتی Lingara نمیتواند کارتی بگیرد که بتواند ترسیمش کند، زبانآموز کارت خود Lingara با عنوان «این برنامه پاسخ نداد» را به زبان خودش میبیند، یا آخرین کارت سالم شما را با برچسب «بهروز نیست». هرگز دلیل به زبانآموز گفته نمیشود. فقط شما، بهعنوان مالک برنامه، دلیل را میبینید:
- پاسخ شما:
invalid(کارتی نیست که Lingara بتواند بخواند)،empty(پس از محدودیتها چیزی برای نمایش نمانده) یاtoo_large(بیش از 32 KiB). - رسیدن به سرور شما:
timeout،http_error(هر وضعیتی جز 200)،transport(شکست در اتصال یا TLS، مثل گواهی منقضیشده) یاblocked(یکrender_urlکه به نشانی خصوصی یا نشانی IP صریح میرسد). - سمت Lingara:
unavailable(Lingara نتوانست درخواست را امضا کند) یاbusy(از قبل درخواستهای در حال اجرای زیادی وجود دارد).