پیشنمایش یک ترجمه
اینکه `translate` روی یک ارسال چه چیزی تولید میکرد، بیآنکه چیزی فرستاده یا ذخیره شود.
فراخوانی واقعی را با کلید خودتان روی فضای کاری شما اجرا میکند.
POST /emails/translate
اینکه translate روی یک ارسال چه چیزی تولید میکرد، بیآنکه چیزی فرستاده یا ذخیره شود.
درخواست
همان سه گزینهای که یک ارسال حل میکند، منهای پاکت، که از همان تابعی میگذرند که مسیر ارسال صدا میزند. همین اینهمانی تمام ارزش این نقطه پایانی است: پیشنمایشی با کد خودش وعدهای میبود که به آن وفا نمیکنیم، و روزی که آن دو از هم فاصله میگرفتند، آنچه روی صفحهٔ کسی است و آنچه در صندوق گیرنده است فرق میکرد بیآنکه چیزی این را بگوید.
پارامترها
tostringالزامی- زبانی که باید به آن نوشته شود. یک کد BCP-47 (`de`)، یک نام انگلیسی («German») یا نام خودِ زبان («Deutsch»). پاسخ به شما میگوید به کدام کد حل شده، و اگر برای هر مخاطب یک زبان نگه میدارید، همان شکلی است که باید ذخیره کنید.
htmlstring- بدنهٔ HTML، تا یک مگابایت. یکی از html، text یا subject الزامی است.
textstring- بخش متن ساده. مستقل از `html` ترجمه میشود، با بررسی طول خودش.
subjectstring- خطِ موضوع: یک string، نه آن بولی که زیر `translate` روی یک ارسال هست. این دو دو پرسش متفاوتاند: آنجا میگویید موضوعی را که از پیش داریم ترجمه کنیم یا نه، اینجا خودتان یکی را تحویل میدهید.
fromstring- زبانی که پیام را به آن نوشتهاید، در هر یک از همان سه شکل. گفتنش فراخوانی تشخیص را کنار میگذارد.
includeOriginalboolean- اینکه آیا `html` بازگشتی از پیش متن اصلی شما را زیر ترجمه با خود دارد یا نه. پیشفرضش true است.
کلیدهای ناشناخته یک 422 هستند، مثل همهجای دیگر. درخواستی که هیچیک از html، text یا subject را نداشته باشد یک 422 روی html است: «One of html, text or subject is required».
پیشنمایشش کنید
همان رفتوبرگشتی که نویسنده پیش از نشاندادن آنچه کسی میخواهد بفرستد انجام میدهد.
curl -X POST "$OE/emails/translate" -H "$AUTH" -H "Content-Type: application/json" \ -d '{ "subject": "Your September invoice", "html": "<p>Invoice attached. Payment is due on the 14th.</p>", "to": "de" }'{ "object": "translation", "language": { "code": "de", "label": "German", "native": "Deutsch", "flag": "🇩🇪", "rtl": false }, "detectedSourceLanguage": { "code": "en", "label": "English", "native": "English", "flag": "🇬🇧", "rtl": false }, "subject": "Ihre Rechnung für September", "html": "<p>Rechnung im Anhang. Zahlbar bis zum 14.</p>\n<div style=\"margin:28px 0 0;padding:14px 0 0;border-top:1px solid #d6dae0\">\n<div style=\"margin:0 0 10px;font-size:12px;line-height:1.5;color:#6b7280\">Ursprüngliche Nachricht (English)</div>\n<div><p>Invoice attached. Payment is due on the 14th.</p></div>\n</div>", "text": null, "includeOriginal": true}html، text و subject برای فیلدی که نفرستادهاید بهجای غایببودن null برمیگردند، پس یک کلاینت میتواند پاسخ را رندر کند بیآنکه یادش باشد چه خواسته بود.
detectedSourceLanguage وقتی تشخیص خودداری کرده باشد null است. این پاسخی واقعی است و شکست نیست. بدنهای از نام و عدد و پیوند چیزی برای خواندن به آن نمیدهد، و تنها پیامدش این است که متن اصلی شما بدون نام زبان زیرنویس میشود.
includeOriginal بازتاب داده میشود چون محتوای html را عوض میکند. با روشنبودنش بدنه از پیش متن اصلی شما را زیر ترجمه دارد، و افزودن نسخهٔ خودتان آن را دو بار میفرستد.
پیشنمایش، ویرایش، ارسال
شکلی که این برایش ساخته شده پیشنمایش، ویرایش، ارسال است: ترجمه را به کسی نشان دهید، بگذارید عوضش کند، سپس آنچه را تأیید کرده بهعنوان یک html و subject معمولی بفرستید، بدون آنکه اصلاً translate روی درخواست باشد. آنگاه آنچه تأیید کرده واژهبهواژه همان چیزی است که بیرون میرود.
curl -X POST "$OE/emails" -H "$AUTH" -H "Content-Type: application/json" \ -d '{ "from": "[email protected]", "to": ["[email protected]"], "subject": "Ihre Rechnung für September", "html": "<p>Rechnung im Anhang. Zahlbar bis zum 14.</p>" }'ارسال با translate پس از پیشنمایش، بار دوم ترجمه میکند و ویرایشها را دور میریزد. ارسال با واژههایی بیرون میرفت که کسی نخوانده، و این تنها شکستی است که پیشنمایش برای جلوگیری از آن وجود دارد.
چه هزینهای دارد، و چه کاری نمیکند
- سه فراخوانی مدل (بدنه، موضوع، و یکی برای درآوردن اینکه به چه زبانی نوشتهاید) که با هم صادر میشوند، پس انتظار بهاندازهٔ بلندترین آن سه است نه جمعشان. گفتن
fromسومی را حذف میکند. هزینهاش همان ارسال باtranslateاست، پس یک بار پیشنمایش بگیرید نه بهازای هر بازنگری. - چیزی فرستاده نمیشود، هیچ ردیفی نوشته نمیشود، و هیچ شناسهای برنمیگردد. اینجا چیزی نیست که بعداً لغو یا دریافت شود.
- ترجمه میکند و کار دیگری نمیکند. نمونهخوانی نمیکند، نوشته را بهتر نمیکند، و هرگز به پیام پاسخ نمیدهد.
- نامها، شرکتها، پیوندها، شمارههای سفارش، قیمتها و تاریخها همانطور که رفتهاند برمیگردند، پس میتوان ترجمه را خطبهخط با متن اصلی سنجید.
- برخلاف نیمهٔ خواندن، تاریخچهٔ نقلشده حذف نمیشود. آنچه تحویل میدهید همان است که ترجمه میشود، که برای یک نویسنده درست است، جایی که بدنه تنها همان چیزی است که کسی همین حالا نوشته، و اگر یک زنجیرهٔ پاسخ کامل را پست میکنید دانستنش میارزد.
- با
emails:sendمحدود شده و دامنه دسترسی خودش را ندارد: چیزی فراتر از آنچه فرستنده از پیش میتوانست بکند نمیدهد، و دامنه دسترسیای که کسی نتواند روی صفحهٔ رضایت ازemails:sendجدایش کند، معنای هر دامنه دسترسی دیگری در آن فهرست را کمی کمرنگتر میکند.
بدنه به همان یک مگابایتی محدود است که یک ارسال اجازه میدهد، اما خودِ ترجمه هر چیزی بیش از ۳۰٬۰۰۰ نویسه را با translation_too_long رد میکند. کدهای شکست همانهاییاند که یک ارسال ترجمهشده برمیگرداند، که زیر «ارسال یک ایمیل» فهرست شدهاند.