معاينة ترجمة
ما سينتجه `translate` على إرسال، دون إرسال شيء ودون تخزين شيء.
ينفّذ الاستدعاء الحقيقي على مساحة عملك، بمفتاحك أنت.
POST /emails/translate
ما سينتجه translate على إرسال، دون إرسال شيء ودون تخزين شيء.
الطلب
الخيارات الثلاثة نفسها التي يحسمها الإرسال، ناقص الظرف، ممرَّرة عبر الدالة نفسها التي يستدعيها مسار الإرسال. وتلك المطابقة هي قيمة نقطة النهاية كلها: فالمعاينة بكود خاص بها وعدٌ لا نفي به، ويوم يفترق الاثنان سيختلف ما على شاشة أحدهم عمّا في صندوق وارد المستلِم دون ما يشير إلى ذلك.
المعاملات
tostringمطلوب- اللغة المراد الكتابة بها. رمز BCP-47 (`de`) أو اسم إنجليزي ("German") أو اسم اللغة بلسانها ("Deutsch"). وتخبرك الاستجابة بالرمز الذي حُسمت إليه، وهو الصيغة التي تُخزَّن إن كنت تحفظ لغة لكل جهة اتصال.
htmlstring- نص HTML، حتى ميغابايت واحد. ويُطلب واحد من html أو text أو subject.
textstring- الجزء النصي الصِّرف. يُترجَم مستقلًا عن `html`، وله فحص طول خاص به.
subjectstring- سطر الموضوع: سلسلة، لا القيمة المنطقية التي يكونها تحت `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في شاشة الموافقة يجعل كل نطاق آخر في تلك القائمة يعني أقل قليلًا.
النص محدود بالميغابايت نفسه الذي يسمح به الإرسال، لكن الترجمة نفسها ترفض ما يتجاوز 30,000 حرف بـ translation_too_long. ورموز الإخفاق هي التي يعيدها إرسال مترجَم، وهي مدرجة تحت إرسال رسالة.