کارتها
این صفحه از انگلیسی ترجمه شده است. اگر این دو با هم فرق داشته باشند، صفحهٔ انگلیسی درست است. صفحهٔ انگلیسی را بخوانید
کارت فهرست کوتاهی از عناصر است که 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(از قبل درخواستهای در حال انجام بسیار زیادی وجود دارد).