draft-ietf-slim-multilangcontent-05.txt   draft-ietf-slim-multilangcontent-06.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: February 18, 2017 August 17, 2016 Expires: April 15, 2017 October 12, 2016
Multiple Language Content Type Multiple Language Content Type
draft-ietf-slim-multilangcontent-05 draft-ietf-slim-multilangcontent-06
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 February 18, 2017. This Internet-Draft will expire on April 15, 2017.
Copyright Notice Copyright Notice
Copyright (c) 2016 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
skipping to change at page 3, line 4 skipping to change at page 3, line 4
embedded in the same message. This MIME subtype helps the receiving embedded in the same message. This MIME subtype helps the receiving
email client make sense of the message structure. email client make sense of the message structure.
The multipart subtype "multipart/multilingual" has similar semantics The multipart subtype "multipart/multilingual" has similar semantics
to "multipart/alternative" (as discussed in RFC 2046 [RFC2046]) in to "multipart/alternative" (as discussed in RFC 2046 [RFC2046]) in
that each of the message parts is an alternative version of the same that each of the message parts is an alternative version of the same
information. The primary difference between "multipart/multilingual" information. The primary difference between "multipart/multilingual"
and "multipart/alternative" is that when using "multipart/ and "multipart/alternative" is that when using "multipart/
multilingual", the message part to select for rendering is chosen multilingual", the message part to select for rendering is chosen
based on the values of the Content-Language field and optionally the based on the values of the Content-Language field and optionally the
Translation-Type parameter of the Content-Language field instead of Translation-Type field instead of the ordering of the parts and the
the ordering of the parts and the Content-Types. Content-Types.
The syntax for this multipart subtype conforms to the common syntax The syntax for this multipart subtype conforms to the common syntax
for subtypes of multipart given in section 5.1.1. of RFC 2046 for subtypes of multipart given in section 5.1.1. of RFC 2046
[RFC2046]. An example "multipart/multilingual" Content-Type header [RFC2046]. An example "multipart/multilingual" Content-Type header
field would look like this: field would look like this:
Content-Type: multipart/multilingual; boundary=01189998819991197253 Content-Type: multipart/multilingual; boundary=01189998819991197253
3. The Message Parts 3. The Message Parts
skipping to change at page 4, line 27 skipping to change at page 4, line 27
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 and MAY MUST have a Content-Language field and a Content-Type field and MAY
have a Translation-Type parameter applied to the Content-Language have a Translation-Type field.
field.
The Content-Type for each individual language message part SHOULD be The Content-Type for each individual language message part SHOULD be
message/rfc822 to provide good support with non-conforming email message/rfc822 to provide good support with non-conforming email
clients. However, an implementation MAY use message/global as clients. However, an implementation MAY use message/global as
support for message/global becomes more commonplace. See RFC 6532 support for message/global becomes more commonplace. See RFC 6532
[RFC6532] for details of message/global. Each language message part [RFC6532] for details of message/global. Each language message part
SHOULD have a Subject field in the appropriate language for that SHOULD have a Subject field in the appropriate language for that
language part. If there is a From field present, its value MUST language part. If there is a From field present, its value MUST
include the same email address as the top-level From header although include the same email address as the top-level From header although
the display name MAY be a localised version. the display name MAY be a localised version.
skipping to change at page 5, line 19 skipping to change at page 5, line 19
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.
If the email client does understand multipart/multilingual then it If the email client does understand multipart/multilingual then it
SHOULD ignore the multilingual preface and select the best match for SHOULD ignore the multilingual preface and select the best match for
the user's preferred language from the language message parts the user's preferred language from the language message parts
available. Also, the user may prefer to see the original message available. Also, the user may prefer to see the original message
content in their second language over a machine translation in their content in their second language over a machine translation in their
first language. The Translation-Type parameter of the Content- first language. The Translation-Type field value can be used for
Language field value can be used for further selection based on this further selection based on this preference. The selection of
preference. The selection of language part may be implemented in a language part may be implemented in a variety of ways, although the
variety of ways, although the matching schemes detailed in RFC 4647 matching schemes detailed in RFC 4647 [RFC4647] are RECOMMENDED as a
[RFC4647] are RECOMMENDED as a starting point for an implementation. starting point for an implementation. The goal is to render the most
The goal is to render the most appropriate translation for the user. appropriate translation for the user.
If there is no match for the user's preferred language (or there is If there is no match for the user's preferred language (or there is
no preferred language information available) the email client SHOULD no preferred language information available) the email client SHOULD
select the language independent part (if one exists) or the first select the language independent part (if one exists) or the first
language part (directly after the multilingual preface) if a language language part (directly after the multilingual preface) if a language
independent part does not exist. independent part does not exist.
If there is no translation type preference information available, the If there is no translation type preference information available, the
values of the Translation-Type parameter may be ignored. values of the Translation-Type field may be ignored.
Additionally, interactive implementations MAY offer the user a choice Additionally, interactive implementations MAY offer the user a choice
from among the available languages. from among the available languages.
5. The Content-Language Field 5. The Content-Language Field
The Content-Language field in the individual language message parts The Content-Language field in the individual language message parts
is used to identify the language in which the message part is is used to identify the language in which the message part is
written. Based on the value of this field, a conforming email client written. Based on the value of this field, a conforming email client
can determine which message part to display (given the user's can determine which message part to display (given the user's
skipping to change at page 6, line 11 skipping to change at page 6, line 11
Examples of this field for English, German and an instruction manual Examples of this field for English, German and an instruction manual
in Spanish and French, could look like the following: in Spanish and French, could look like the following:
Content-Language: en Content-Language: en
Content-Language: de Content-Language: de
Content-Language: es, fr Content-Language: es, fr
6. The Translation-Type Parameter 6. The Translation-Type Field
The Translation-Type parameter can be applied to the Content-Language The Translation-Type field can be used in the individual language
field in the individual language message parts and is used to message parts to identify the type of translation. Based on the
identify the type of translation. Based on the value of this value of this parameter and the user's preferences, a conforming
parameter and the user's preferences, a conforming email client can email client can determine which message part to display.
determine which message part to display.
This parameter can have one of three possible values: 'original', This field can have one of three possible values: 'original', 'human'
'human' or 'automated' although other values may be added in the or 'automated' although other values may be added in the future. A
future. A value of 'original' is given in the language message part value of 'original' is given in the language message part that is in
that is in the original language. A value of 'human' is used when a the original language. A value of 'human' is used when a language
language message part is translated by a human translator or a human message part is translated by a human translator or a human has
has checked and corrected an automated translation. A value of checked and corrected an automated translation. A value of
'automated' is used when a language message part has been translated 'automated' is used when a language message part has been translated
by an electronic agent without proofreading or subsequent correction. by an electronic agent without proofreading or subsequent correction.
Examples of this parameter include: Examples of this field include:
Content-Language: en; translation-type=original Translation-Type: original
Content-Language: fr; translation-type=human Translation-Type: human
7. The Subject Field in the Language Message parts 7. The Subject Field in the Language Message parts
On receipt of the message, conforming email clients will need to On receipt of the message, conforming email clients will need to
render the subject in the correct language for the recipient. To render the subject in the correct language for the recipient. To
enable this the Subject field SHOULD be provided in each language enable this the Subject field SHOULD be provided in each language
message part. The value for this field should be a translation of message part. The value for this field should be a translation of
the email subject. the email subject.
US-ASCII and 'encoded-word' examples of this field include: US-ASCII and 'encoded-word' examples of this field include:
skipping to change at page 7, line 41 skipping to change at page 7, line 39
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. Las otras traducciones pueden presentarse como archivos traducciones. Las otras traducciones pueden presentarse como archivos
adjuntos o agrupados. adjuntos o agrupados.
--01189998819991197253 --01189998819991197253
Content-Type: message/rfc822 Content-Type: message/rfc822
Content-Language: en; translation-type=original Content-Language: en
Translation-Type: original
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-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: 7bit Content-Transfer-Encoding: 7bit
MIME-Version: 1.0 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-Type: message/rfc822
Content-Language: es; translation-type=human Content-Language: es
Translation-Type: human
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_?=
=?UTF-8?Q?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-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: 7bit Content-Transfer-Encoding: 7bit
MIME-Version: 1.0 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.
skipping to change at page 8, line 49 skipping to change at page 8, line 50
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. Las otras traducciones pueden presentarse como archivos traducciones. Las otras traducciones pueden presentarse como archivos
adjuntos o agrupados. adjuntos o agrupados.
--01189998819991197253 --01189998819991197253
Content-Type: message/rfc822 Content-Type: message/rfc822
Content-Language: en; translation-type=original Content-Language: en
Translation-Type: original
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-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: 7bit Content-Transfer-Encoding: 7bit
MIME-Version: 1.0 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-Type: message/rfc822
Content-Language: es; translation-type=human Content-Language: es
Translation-Type: human
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_?=
=?UTF-8?Q?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-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: 7bit Content-Transfer-Encoding: 7bit
MIME-Version: 1.0 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.
skipping to change at page 10, line 32 skipping to change at page 10, line 38
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. Las otras traducciones pueden presentarse como archivos traducciones. Las otras traducciones pueden presentarse como archivos
adjuntos o agrupados. adjuntos o agrupados.
--01189998819991197253 --01189998819991197253
Content-Type: message/rfc822 Content-Type: message/rfc822
Content-Language: en; translation-type=original Content-Language: en
Translation-Type: original
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: multipart/alternative; Content-Type: multipart/alternative;
boundary="72530118999911999881"; charset="US-ASCII" boundary="72530118999911999881"; charset="US-ASCII"
Content-Transfer-Encoding: 7bit Content-Transfer-Encoding: 7bit
MIME-Version: 1.0 MIME-Version: 1.0
--72530118999911999881 --72530118999911999881
Content-Type: text/plain; charset="US-ASCII" Content-Type: text/plain; charset="US-ASCII"
skipping to change at page 10, line 44 skipping to change at page 11, line 4
Subject: Example of a message in Spanish and English Subject: Example of a message in Spanish and English
Content-Type: multipart/alternative; Content-Type: multipart/alternative;
boundary="72530118999911999881"; charset="US-ASCII" boundary="72530118999911999881"; charset="US-ASCII"
Content-Transfer-Encoding: 7bit Content-Transfer-Encoding: 7bit
MIME-Version: 1.0 MIME-Version: 1.0
--72530118999911999881 --72530118999911999881
Content-Type: text/plain; charset="US-ASCII" Content-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: 7bit Content-Transfer-Encoding: 7bit
Hello, this message content is provided in your language. Hello, this message content is provided in your language.
--72530118999911999881 --72530118999911999881
Content-Type: text/html; charset="US-ASCII" Content-Type: text/html; charset="US-ASCII"
Content-Transfer-Encoding: 7bit Content-Transfer-Encoding: 7bit
<html><body>Hello, this message content is <b>provided</b> in <i>your</i> language.</body></html> <html><body>Hello, this message content is <b>provided</b> in <i>your</i> language.</body></html>
--72530118999911999881-- --72530118999911999881--
--01189998819991197253 --01189998819991197253
Content-Type: message/rfc822 Content-Type: message/rfc822
Content-Language: es; translation-type=human Content-Language: es
Translation-Type: human
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_?=
=?UTF-8?Q?en_espa=C3=B1ol_e_ingl=C3=A9s?= =?UTF-8?Q?en_espa=C3=B1ol_e_ingl=C3=A9s?=
Content-Type: multipart/alternative; Content-Type: multipart/alternative;
boundary="53011899989991197281"; charset="US-ASCII" boundary="53011899989991197281"; charset="US-ASCII"
Content-Transfer-Encoding: 7bit Content-Transfer-Encoding: 7bit
MIME-Version: 1.0 MIME-Version: 1.0
--53011899989991197281 --53011899989991197281
skipping to change at page 14, line 22 skipping to change at page 14, line 36
o Included full email addresses in all examples. o Included full email addresses in all examples.
o Updated reference name of real-time companion document in the o Updated reference name of real-time companion document in the
Introduction. Introduction.
o Removed paragraph warning of over use of language sub-tags. o Removed paragraph warning of over use of language sub-tags.
o Changed 'exponential' to 'significantly' in Introduction. o Changed 'exponential' to 'significantly' in Introduction.
9.10. Changes from draft-ietf-slim-multilangcontent-05 to draft-ietf-
slim-multilangcontent-06
o Changed parameter Translation-Type back to a new field to reduce
the risk of breaking existing implementations that don't expect
any parameters on Content-Language.
o Improved the IANA Considerations section to include the full
registration template for the multipart/multilingual type and the
new Translation-Type field.
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, Sean Leonard, John Levine, Alexey Randall Gellens, Gunnar Hellstrom, Barry Leiba, Sean Leonard, John
Melnikov, Addison Phillips, Pete Resnick, Brian Rosen, Fiona Levine, Alexey Melnikov, Addison Phillips, Julian Reschke, Pete
Tomkinson, Simon Tyler and Daniel Vargha. Resnick, Brian Rosen, Fiona Tomkinson, Simon Tyler and Daniel Vargha.
The authors would also like to thank Fernando Alvaro and Luis de The authors would also like to thank Fernando Alvaro and Luis de
Pablo for their work on the Spanish translations. Pablo for their work on the Spanish translations.
11. IANA Considerations 11. IANA Considerations
The multipart/multilingual MIME type will be registered with IANA. 11.1. The multipart/multilingual MIME type
The multipart/multilingual MIME type will be registered with IANA
including a reference to this document. This is the registration
template:
Media Type name: multipart
Media subtype name: multilingual
Required parameters: boundary (defined in RFC2046)
Optional parameters: N/A
Encoding considerations: only "7bit", "8bit", or "binary" are
permitted
Security considerations: See the Security Considerations section
in this document
Interoperability considerations:
Existing systems that do not treat unknown multipart subtypes
as multipart/mixed may not correctly render a
multipart/multilingual type.
Published specification: This document
Applications that use this media type:
Mail Transfer Agents, Mail User Agents, spam detection,
virus detection modules and message authentication modules.
Additional information:
Deprecated alias names for this type: N/A
Magic number(s): N/A
File extension(s): N/A
Macintosh file type code(s): N/A
Person & email address to contact for further information:
Nik Tomkinson
rfc.nik.tomkinson@gmail.com
Nathaniel Borenstein
nsb@mimecast.com
Intended usage: Common
11.2. The Translation-Type field
The Translation-Type field will be added to the IANA "Permanent
Message Header Field Names" registry. That entry will reference this
document. This is the registration template:
Header field name: Translation-Type
Applicable protocol: mail
Status: Standard
Author/Change controller: IETF
Specification document(s): this document
Related information: none
12. Security Considerations 12. Security Considerations
Whilst it is intended that each language message part is a direct Whilst it is intended that each language message part is a direct
translation of the original message, this may not always be the case translation of the original message, this may not always be the case
and these parts could contain undesirable content. Therefore there and these parts could contain undesirable content. Therefore there
is a possible risk that undesirable text or images could be shown to 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 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 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 due to the fact that an unknown multipart subtype should be treated
 End of changes. 25 change blocks. 
40 lines changed or deleted 118 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/