draft-ietf-slim-multilangcontent-00.txt   draft-ietf-slim-multilangcontent-01.txt 
IETF N. Tomkinson IETF N. Tomkinson
Internet-Draft N. Borenstein Internet-Draft N. Borenstein
Intended status: Standards Track Mimecast Ltd Intended status: Standards Track Mimecast Ltd
Expires: May 5, 2016 November 2, 2015 Expires: January 9, 2017 July 8, 2016
Multiple Language Content Type Multiple Language Content Type
draft-ietf-slim-multilangcontent-00 draft-ietf-slim-multilangcontent-01
Abstract Abstract
This document defines an addition to the Multipurpose Internet Mail This document defines an addition to the Multipurpose Internet Mail
Extensions (MIME) standard to make it possible to send one message Extensions (MIME) standard to make it possible to send one message
that contains multiple language versions of the same information. that contains multiple language versions of the same information.
The translations would be identified by a language tag and selected The translations would be identified by a language tag and selected
by the email client based on a user's language settings. by the email client based on a user's language settings.
Status of This Memo Status of This Memo
skipping to change at page 1, line 34 skipping to change at page 1, line 34
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on May 5, 2016. This Internet-Draft will expire on January 9, 2017.
Copyright Notice Copyright Notice
Copyright (c) 2015 IETF Trust and the persons identified as the Copyright (c) 2016 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
skipping to change at page 3, line 26 skipping to change at page 3, line 26
A multipart/multilingual message will have a number of message parts: A multipart/multilingual message will have a number of message parts:
exactly one multilingual preface, one or more language message parts exactly one multilingual preface, one or more language message parts
and zero or one language independent message part. The details of and zero or one language independent message part. The details of
these are described below. these are described below.
3.1. The Multilingual Preface 3.1. The Multilingual Preface
In order for the message to be received and displayed in non- In order for the message to be received and displayed in non-
conforming email clients, the message SHOULD contain an explanatory conforming email clients, the message SHOULD contain an explanatory
message part which MUST NOT be marked with a Content-Language field message part which MUST NOT be marked with a Content-Language field
and MUST be the first of the message parts. Because non-conforming and MUST be the first of the message parts. For maximum support in
email clients are expected to treat the message as multipart/mixed the most basic of non-conforming email clients, it SHOULD have a
(in accordance with sections 5.1.3 and 5.1.7 of RFC 2046 [RFC2046]) Content-Type of text/plain. Because non-conforming email clients are
they may show all of the message parts sequentially or as expected to treat a message with an unknown multipart type as
attachments. Including and showing this explanatory part will help multipart/mixed (in accordance with sections 5.1.3 and 5.1.7 of RFC
the message recipient understand the message structure. 2046 [RFC2046]) they may show all of the message parts sequentially
or as attachments. Including and showing this explanatory part will
help the message recipient understand the message structure.
This initial message part SHOULD explain briefly to the recipient This initial message part SHOULD explain briefly to the recipient
that the message contains multiple languages and the parts may be that the message contains multiple languages and the parts may be
rendered sequentially or as attachments. This SHOULD be presented in rendered sequentially or as attachments. This SHOULD be presented in
the same languages that are provided in the subsequent language the same languages that are provided in the subsequent language
message parts. message parts.
As this explanatory section is likely to contain languages using As this explanatory section is likely to contain languages using
scripts that require non-US-ASCII characters, it is RECOMMENDED that scripts that require non-US-ASCII characters, it is RECOMMENDED that
UTF-8 encoding is used for this message part. UTF-8 encoding is used for this message part.
skipping to change at page 4, line 22 skipping to change at page 4, line 26
Section 8. Section 8.
3.2. The Language Message Parts 3.2. The Language Message Parts
The language message parts are typically translations of the same The language message parts are typically translations of the same
message content. These message parts SHOULD be ordered so that the message content. These message parts SHOULD be ordered so that the
first part after the multilingual preface is in the language believed first part after the multilingual preface is in the language believed
to be the most likely to be recognised by the recipient as this will to be the most likely to be recognised by the recipient as this will
constitute the default part when language negotiation fails and there constitute the default part when language negotiation fails and there
is no Language Independent part. All of the language message parts is no Language Independent part. All of the language message parts
MUST have a Content-Language field and a Content-Type field, they MUST have a Content-Language field and a Content-Type field and MAY
SHOULD have a Subject field and MAY have a Translation-Type parameter have a Translation-Type parameter applied to the Content-Language
applied to the Content-Language field. field.
The Content-Type for each individual language part MAY be any MIME
type (including multipart subtypes such as multipart/alternative).
However, it is RECOMMENDED that the Content-Type of the language
parts is kept as simple as possible for interoperability with
existing email clients. The language parts are not required to have
matching Content-Types or multipart structures. For example, there
might be an English part of type "text/html" followed by a Spanish
part of type "application/pdf" followed by a Chinese part of type
"image/jpeg". Whatever the content-type, the contents SHOULD be
composed for optimal viewing in the specified language.
For a non-multipart type, it is RECOMMENDED that the sender applies a
Name parameter to the Content-Type field. This will help the
recipient identify the translations when the translations are
rendered as attachments by a non-conforming email client.
Examples of this parameter include:
Content-Type: text/plain; name="english.txt"
Content-Type: text/plain; name="espanol.txt"
Content-Type: application/pdf; name="hellenic.pdf" The Content-Type for each individual language message part SHOULD be
message/rfc822 to provide good support with non-conforming email
clients. However, an implementation MAY use message/global when
support for message/global becomes more commonplace. Each language
message part SHOULD have a Subject field in the appropriate language
for that language part.
3.3. The Language Independent Message Part 3.3. The Language Independent Message Part
If there is language independent content intended for the recipient If there is language independent content intended for the recipient
to see if they have a preferred language other than one of those to see if they have a preferred language other than one of those
specified in the language message parts and the default language specified in the language message parts and the default language
message part is unlikely to be understood, another part MAY be message part is unlikely to be understood, another part MAY be
provided. This could typically be a language independent graphic. provided. This could typically be a language independent graphic.
When this part is present, it MUST be the last part, MUST have a When this part is present, it MUST be the last part, MUST have a
Content-Language field with a value of "zxx" (as described in BCP 47/ Content-Language field with a value of "zxx" (as described in BCP 47/
RFC 5646 [RFC5646]) and SHOULD NOT have a Subject field. RFC 5646 [RFC5646]) and SHOULD NOT have a Subject field. The part
SHOULD have a Content-Type of message/rfc822 or message/global (to
match the language message parts).
4. Message Part Selection 4. Message Part Selection
The logic for selecting the message part to render and present to the The logic for selecting the message part to render and present to the
recipient is summarised in the next few paragraphs. recipient is summarised in the next few paragraphs.
Firstly, if the email client does not understand multipart/ Firstly, if the email client does not understand multipart/
multilingual then it SHOULD treat the message as if it was multipart/ multilingual then it SHOULD treat the message as if it was multipart/
mixed and render message parts accordingly. mixed and render message parts accordingly.
skipping to change at page 8, line 4 skipping to change at page 7, line 18
The subject to be presented to the recipient should be selected from The subject to be presented to the recipient should be selected from
the message part identified during the message part selection stage. the message part identified during the message part selection stage.
If no Subject field is found (for example if the language independent If no Subject field is found (for example if the language independent
part is selected) the top-level Subject header field value should be part is selected) the top-level Subject header field value should be
used. used.
8. Examples 8. Examples
8.1. An Example of a Simple Multiple language email message 8.1. An Example of a Simple Multiple language email message
Below is a minimal example of a multiple language email message. It
has the multilingual preface and two language message parts.
From: Nik From: Nik
To: Nathaniel To: Nathaniel
Subject: example of a message in Spanish and English Subject: Example of a message in Spanish and English
Content-Type: multipart/multilingual; boundary=01189998819991197253 Date: Thu, 7 Jul 2016 21:28:00 +0100
Content-Disposition: inline MIME-Version: 1.0
Content-type: multipart/multilingual;
boundary="01189998819991197253"
--01189998819991197253 --01189998819991197253
Content-type: text/plain; charset="UTF-8" Content-type: text/plain; charset="UTF-8"
Content-transfer-encoding: quoted-printable
Content-Disposition: inline Content-Disposition: inline
Content-transfer-encoding: quoted-printable
This is a message in multiple languages. It says the This is a message in multiple languages. It says the
same thing in each language. If you can read it in one language, same thing in each language. If you can read it in one language,
you can ignore the other translations. The other translations may be you can ignore the other translations. The other translations may be
presented as attachments or grouped together. presented as attachments or grouped together.
Este es un mensaje en varios idiomas. Dice lo mismo en Este es un mensaje en varios idiomas. Dice lo mismo en
cada idioma. Si puede leerlo en un idioma, puede ignorar las otras cada idioma. Si puede leerlo en un idioma, puede ignorar las otras
traducciones. Cualquier otra traducci=C3=B3n puede presentarse como traducciones. Las otras traducciones pueden presentarse como archivos
un archivo adjunto o agrupado. adjuntos o agrupados.
--01189998819991197253 --01189998819991197253
Content-type: message/rfc822
Content-Language: en; translation-type=original Content-Language: en; translation-type=original
Content-Type: text/plain; name="english.txt" Content-disposition: inline
Content-Disposition: inline
Subject: example of a message in Spanish and English Subject: Example of a message in Spanish and English
Content-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: 7bit
MIME-Version: 1.0
Hello, this message content is provided in your language. Hello, this message content is provided in your language.
--01189998819991197253 --01189998819991197253
Content-type: message/rfc822
Content-Language: es; translation-type=human Content-Language: es; translation-type=human
Content-Type: text/plain; name="espanol.txt" Content-disposition: inline
Content-Disposition: inline
Subject: =?UTF-8?Q?ejemplo_pr=C3=A1ctico_de_mensaje_ Subject: =?UTF-8?Q?Ejemplo_pr=C3=A1ctico_de_mensaje_?=
en_espa=C3=B1ol_e_ingl=C3=A9s?= =?UTF-8?Q?en_espa=C3=B1ol_e_ingl=C3=A9s?=
Content-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: 7bit
MIME-Version: 1.0
Hola, el contenido de este mensaje esta disponible en su idioma. Hola, el contenido de este mensaje esta disponible en su idioma.
--01189998819991197253 --01189998819991197253--
Content-Language: zxx
Content-Type: image/gif
Content-Disposition: inline
..GIF image showing iconic or language-independent content here.. 8.2. An Example of a Multiple language email message with language
independent part
--01189998819991197253-- Below is an example of a multiple language email message that has the
multilingual preface followed by two language message parts and then
a language independent png image.
8.2. An Example of a Complex Multiple language email message From: Nik
To: Nathaniel
Subject: Example of a message in Spanish and English
Date: Thu, 7 Jul 2016 21:08:00 +0100
MIME-Version: 1.0
Content-type: multipart/multilingual;
boundary="01189998819991197253"
Below is an example of a more complex multiple language email message --01189998819991197253
formatted using the method detailed in this document. Note that the Content-type: text/plain; charset="UTF-8"
language message parts have multipart contents and would therefore Content-Disposition: inline
Content-transfer-encoding: quoted-printable
This is a message in multiple languages. It says the
same thing in each language. If you can read it in one language,
you can ignore the other translations. The other translations may be
presented as attachments or grouped together.
Este es un mensaje en varios idiomas. Dice lo mismo en
cada idioma. Si puede leerlo en un idioma, puede ignorar las otras
traducciones. Las otras traducciones pueden presentarse como archivos
adjuntos o agrupados.
--01189998819991197253
Content-type: message/rfc822
Content-Language: en; translation-type=original
Content-disposition: inline
Subject: Example of a message in Spanish and English
Content-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: 7bit
MIME-Version: 1.0
Hello, this message content is provided in your language.
--01189998819991197253
Content-type: message/rfc822
Content-Language: es; translation-type=human
Content-disposition: inline
Subject: =?UTF-8?Q?Ejemplo_pr=C3=A1ctico_de_mensaje_?=
=?UTF-8?Q?en_espa=C3=B1ol_e_ingl=C3=A9s?=
Content-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: 7bit
MIME-Version: 1.0
Hola, el contenido de este mensaje esta disponible en su idioma.
--01189998819991197253
Content-type: message/rfc822; name="Icon"
Content-Language: zxx
Content-disposition: inline
Content-Type: multipart/mixed;
boundary="99911972530118999881"; charset="US-ASCII"
Content-Transfer-Encoding: 7bit
MIME-Version: 1.0
--99911972530118999881
Content-Type: image/png; name="icon.png"
Content-Disposition: inline
Content-transfer-encoding: base64
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAKQ2lDQ1BJQ0MgUHJvZmlsZQAA
SA2dlndUU1... shortened for brevity ...7yxfd1SNsEy+OXr76qr
997zF2hvZYeDEP5ftGV6Xzx2o9MAAAAASUVORK5CYII=
--99911972530118999881--
--01189998819991197253--
8.3. An Example of a complex Multiple language email message with
language independent part
Below is an example of a more complex multiple language email
message. It has the multilingual preface and two language message
parts and then a language independent png image. The language
message parts have multipart/alternative contents and would therefore
require further processing to determine the content to display. require further processing to determine the content to display.
From: Nik From: Nik
To: Nathaniel To: Nathaniel
Subject: example of a message in Spanish and English Subject: Example of a message in Spanish and English
Content-Type: multipart/multilingual; boundary=01189998819991197253 Date: Thu, 7 Jul 2016 20:55:00 +0100
Content-Disposition: inline MIME-Version: 1.0
Content-type: multipart/multilingual;
boundary="01189998819991197253"
--01189998819991197253 --01189998819991197253
Content-type: text/plain; charset="UTF-8" Content-type: text/plain; charset="UTF-8"
Content-transfer-encoding: quoted-printable Content-Disposition: inline
Content-Disposition: inline Content-transfer-encoding: quoted-printable
This is a message in multiple languages. It says the This is a message in multiple languages. It says the
same thing in each language. If you can read it in one language, same thing in each language. If you can read it in one language,
you can ignore the other translations. The other translations may be you can ignore the other translations. The other translations may be
presented as attachments or grouped together. presented as attachments or grouped together.
Este es un mensaje en varios idiomas. Dice lo mismo en Este es un mensaje en varios idiomas. Dice lo mismo en
cada idioma. Si puede leerlo en un idioma, puede ignorar las otras cada idioma. Si puede leerlo en un idioma, puede ignorar las otras
traducciones. Cualquier otra traducci=C3=B3n puede presentarse como traducciones. Las otras traducciones pueden presentarse como archivos
un archivo adjunto o agrupado. adjuntos o agrupados.
--01189998819991197253 --01189998819991197253
Content-Language: en; translation-type=original Content-type: message/rfc822
Content-Type: multipart/alternative; boundary=multipartaltboundary Content-Language: en; translation-type=original
Subject: example of a message in Spanish and English Content-disposition: inline
--multipartaltboundary Subject: Example of a message in Spanish and English
Content-Type: text/plain; name="english.txt" Content-Type: multipart/alternative;
boundary="72530118999911999881"; charset="US-ASCII"
Content-Transfer-Encoding: 7bit
MIME-Version: 1.0
Hello, this message content is provided in your language. --72530118999911999881
Content-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: 7bit
--multipartaltboundary Hello, this message content is provided in your language.
Content-Type: text/html; name="english.html"
<html><body><p>Hello, this message content is provided in your --72530118999911999881
language.<p></body></html> Content-Type: text/html; charset="US-ASCII"
Content-Transfer-Encoding: 7bit
--multipartaltboundary-- <html><body>Hello, this message content is <b>provided</b> in <i>your</i> language.</body></html>
--01189998819991197253 --72530118999911999881--
Content-Language: es; translation-type=human --01189998819991197253
Content-Type: multipart/mixed; boundary=multipartmixboundary Content-type: message/rfc822
Subject: =?UTF-8?Q?ejemplo_pr=C3=A1ctico_de_mensaje_ Content-Language: es; translation-type=human
en_espa=C3=B1ol_e_ingl=C3=A9s?= Content-disposition: inline
--multipartmixboundary Subject: =?UTF-8?Q?Ejemplo_pr=C3=A1ctico_de_mensaje_?=
Content-Type:application/pdf; name="espanol.pdf" =?UTF-8?Q?en_espa=C3=B1ol_e_ingl=C3=A9s?=
Content-Type: multipart/alternative;
boundary="53011899989991197281"; charset="US-ASCII"
Content-Transfer-Encoding: 7bit
MIME-Version: 1.0
..PDF file in Spanish here.. --53011899989991197281
Content-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: 7bit
--multipartmixboundary Hola, el contenido de este mensaje esta disponible en su idioma.
Content-Type:image/jpeg; name="espanol.jpg"
..JPEG image showing Spanish content here.. --53011899989991197281
Content-Type: text/html; charset="US-ASCII"
Content-Transfer-Encoding: 7bit
--multipartmixboundary-- <html><body>Hola, el contenido de este <b>mensaje</b> <i>esta</i>
disponible en su idioma.</body></html>
--01189998819991197253 --53011899989991197281--
Content-Language: zxx --01189998819991197253
Content-Type: image/gif Content-type: message/rfc822; name="Icon"
Content-Disposition: inline Content-Language: zxx
Content-disposition: inline
..GIF image showing iconic or language-independent content here.. Content-Type: multipart/mixed;
boundary="99911972530118999881"; charset="US-ASCII"
Content-Transfer-Encoding: 7bit
MIME-Version: 1.0
--01189998819991197253-- --99911972530118999881
Content-Type: image/png; name="icon.png"
Content-Disposition: inline
Content-transfer-encoding: base64
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAKQ2lDQ1BJQ0MgUHJvZmlsZQAA
SA2dlndUU1... shortened for brevity ...7yxfd1SNsEy+OXr76qr
997zF2hvZYeDEP5ftGV6Xzx2o9MAAAAASUVORK5CYII=
--99911972530118999881--
--01189998819991197253--
-01189998819991197253--
9. Changes from Previous Versions 9. Changes from Previous Versions
9.1. Changes from draft-tomkinson-multilangcontent-01 to draft- 9.1. Changes from draft-tomkinson-multilangcontent-01 to draft-
tomkinson-slim-multilangcontent-00 tomkinson-slim-multilangcontent-00
o File name and version number changed to reflect the proposed WG o File name and version number changed to reflect the proposed WG
name SLIM (Selection of Language for Internet Media). name SLIM (Selection of Language for Internet Media).
o Replaced the Subject-Translation field in the language message o Replaced the Subject-Translation field in the language message
skipping to change at page 11, line 44 skipping to change at page 13, line 27
o Renamed the unmatched part to language independent part to o Renamed the unmatched part to language independent part to
reinforce its intended purpose. reinforce its intended purpose.
o Added requirement for using Content-Language: zxx in the language o Added requirement for using Content-Language: zxx in the language
independent part. independent part.
o Many wording improvements and clarifications throughout the o Many wording improvements and clarifications throughout the
document. document.
9.5. Changes from draft-ietf-slim-multilangcontent-00 to draft-ietf-
slim-multilangcontent-01
o Changed the inner content type to require message/rfc822 or
message/global.
o Updated the examples to reflect the new inner content types.
o Added to the security considerations to highlight the risk from
insufficient spam filters.
10. Acknowledgements 10. Acknowledgements
The authors are grateful for the helpful input received from many The authors are grateful for the helpful input received from many
people but would especially like to acknowledge the help of Harald people but would especially like to acknowledge the help of Harald
Alvestrand, Stephane Bortzmeyer, Eric Burger, Mark Davis, Doug Ewell, Alvestrand, Stephane Bortzmeyer, Eric Burger, Mark Davis, Doug Ewell,
Randall Gellens, Gunnar Hellstrom, Alexey Melnikov, Addison Phillips, Randall Gellens, Gunnar Hellstrom, Sean Leonard, John Levine, Alexey
Fiona Tomkinson, Simon Tyler and Daniel Vargha. The authors would Melnikov, Addison Phillips, Pete Resnick, Fiona Tomkinson, Simon
also like to thank Fernando Alvaro and Luis de Pablo for their work Tyler and Daniel Vargha.
on the Spanish translations.
The authors would also like to thank Fernando Alvaro and Luis de
Pablo for their work on the Spanish translations.
11. IANA Considerations 11. IANA Considerations
The multipart/multilingual MIME type will be registered with IANA. The multipart/multilingual MIME type will be registered with IANA.
12. Security Considerations 12. Security Considerations
This document has no additional security considerations beyond those Whilst it is intended that each language message part is a direct
that apply to the standards and procedures on which it is built. translation of the original message, this may not always be the case
and these parts could contain undesirable content. Therefore there
is a possible risk that undesirable text or images could be shown to
the recipient if the message is passed through a spam filter that
does not check all of the message parts. The risk should be minimal
due to the fact that an unknown multipart subtype should be treated
as multipart/mixed and so each message part should be subsequently
scanned.
13. References 13. References
13.1. Normative References 13.1. Normative References
[RFC2046] Freed, N. and N. Borenstein, "Multipurpose Internet Mail [RFC2046] Freed, N. and N. Borenstein, "Multipurpose Internet Mail
Extensions (MIME) Part Two: Media Types", RFC 2046, Extensions (MIME) Part Two: Media Types", RFC 2046,
DOI 10.17487/RFC2046, November 1996, DOI 10.17487/RFC2046, November 1996,
<http://www.rfc-editor.org/info/rfc2046>. <http://www.rfc-editor.org/info/rfc2046>.
 End of changes. 45 change blocks. 
114 lines changed or deleted 233 lines changed or added

This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/