문서로 건너뛰기
API

번역 미리보기

발송 시 `translate`가 만들어 낼 결과를, 아무것도 보내지 않고 아무것도 저장하지 않고 보여 줍니다.

POSTapi.openemail.uk/emails/translate

본인 키로 워크스페이스에 실제 호출을 실행합니다.

POST /emails/translate

발송 시 translate가 만들어 낼 결과를, 아무것도 보내지 않고 아무것도 저장하지 않고 보여 줍니다.

요청

발송이 처리하는 것과 같은 세 가지 옵션에서 봉투만 뺀 것을, 발송 경로가 호출하는 바로 그 함수에 통과시킵니다. 이 동일성이 이 엔드포인트의 존재 이유 전부입니다. 자체 코드를 가진 미리보기는 지키지 못할 약속이 되고, 둘이 어긋나는 날 누군가의 화면에 있는 것과 수신자의 받은편지함에 있는 것이 달라지면서도 그 사실을 알려 줄 방법이 없게 됩니다.

매개변수

tostring필수
어떤 언어로 쓸지입니다. BCP-47 코드(`de`), 영어 이름("German"), 또는 그 언어 자신의 이름("Deutsch")입니다. 응답은 어떤 코드로 해석되었는지 알려 주며, 연락처별 언어를 저장한다면 그 형태를 저장하면 됩니다.
htmlstring
HTML 본문이며 최대 1메가바이트입니다. html, text, subject 중 하나는 반드시 있어야 합니다.
textstring
평문 부분입니다. `html`과는 독립적으로, 자체 길이 검사와 함께 번역됩니다.
subjectstring
제목 줄 자체입니다. 발송 시 `translate` 아래에서와 달리 boolean이 아니라 string입니다. 둘은 서로 다른 질문입니다. 거기서는 이미 우리가 갖고 있는 제목을 번역할지 여부를 말하는 것이고, 여기서는 제목을 직접 건네는 것입니다.
fromstring
원문을 어떤 언어로 썼는지이며, 위와 같은 세 가지 형태 모두 가능합니다. 명시하면 판별 호출을 건너뜁니다.
includeOriginalboolean
반환되는 `html`이 번역문 아래에 원문을 이미 담고 있는지 여부입니다. 기본값은 true입니다.

다른 곳과 마찬가지로 알 수 없는 키는 422입니다. html, text, subject가 모두 없는 요청은 html에 대한 422이며, "html, text, subject 중 하나는 필수입니다"라고 알려 줍니다.

미리보기

작성기가 보내려는 내용을 사람에게 보여 주기 전에 수행하는 왕복입니다.

curl
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의 내용을 바꾸기 때문입니다. 켜져 있으면 본문에 이미 번역문 아래 원문이 담겨 있으므로, 직접 사본을 덧붙이면 두 번 보내게 됩니다.

미리보기, 편집, 발송

이 기능이 상정한 흐름은 미리보기, 편집, 발송입니다. 사람에게 번역을 보여 주고, 고칠 수 있게 하고, 승인된 내용을 요청에 translate 없이 평범한 htmlsubject로 보내는 것입니다. 그러면 승인된 내용이 한 글자도 다르지 않게 그대로 나갑니다.

curl
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를 붙여 발송하는 것과 같은 비용이므로, 수정할 때마다가 아니라 한 번만 미리보기 하세요.
  • 아무것도 발송되지 않고, 어떤 행도 기록되지 않으며, id도 돌아오지 않습니다. 여기에는 나중에 취소하거나 조회할 대상이 없습니다.
  • 번역만 하고 그 밖에는 아무것도 하지 않습니다. 교정하지 않고, 문장을 다듬지 않으며, 메시지에 답하지도 않습니다.
  • 이름, 회사, 링크, 주문 번호, 가격, 날짜는 들어간 그대로 돌아오므로, 번역문을 원문과 한 줄씩 대조할 수 있습니다.
  • 읽기 쪽과 달리 인용된 이력은 제거되지 않습니다. 건네준 내용이 곧 번역되는 내용이며, 본문이 방금 쓴 것뿐인 작성기에는 이 동작이 맞습니다. 답장 전체 사슬을 보낸다면 알아 둘 가치가 있습니다.
  • 자체 스코프 없이 emails:send로 보호됩니다. 발신자가 이미 할 수 없던 일을 허용하지 않으며, 동의 화면에서 emails:send와 구분되지 않는 스코프를 하나 더 두면 그 목록의 다른 모든 스코프의 의미가 조금씩 옅어지기 때문입니다.

본문은 발송이 허용하는 것과 같은 1메가바이트로 제한되지만, 번역 자체는 30,000자를 넘는 것을 translation_too_long으로 거부합니다. 실패 코드는 번역 발송이 반환하는 것과 동일하며, 이메일 보내기 항목에 정리되어 있습니다.