draft-ietf-slim-multilangcontent-12.txt   draft-ietf-slim-multilangcontent-13.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 10, 2018 August 9, 2017 Expires: February 12, 2018 August 11, 2017
Multiple Language Content Type Multiple Language Content Type
draft-ietf-slim-multilangcontent-12 draft-ietf-slim-multilangcontent-13
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 10, 2018. This Internet-Draft will expire on February 12, 2018.
Copyright Notice Copyright Notice
Copyright (c) 2017 IETF Trust and the persons identified as the Copyright (c) 2017 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 field instead of the ordering of the parts and the Content-Translation-Type field instead of the ordering of the parts
Content-Types. and the 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 field. have a Content-Translation-Type 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 20 skipping to change at page 5, line 20
Firstly, if the email client does not understand multipart/ Firstly, if the email client does not understand multipart/
multilingual then it will treat the message as if it was multipart/ multilingual then it will treat the message as if it was multipart/
mixed and render message parts accordingly (in accordance with mixed and render message parts accordingly (in accordance with
sections 5.1.3 and 5.1.7 of RFC 2046 [RFC2046]). sections 5.1.3 and 5.1.7 of RFC 2046 [RFC2046]).
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 field value can be used for first language. The Content-Translation-Type field value can be used
further selection based on this preference. The selection of for further selection based on this preference. The selection of
language part may be implemented in a variety of ways, although the language part may be implemented in a variety of ways, although the
matching schemes detailed in RFC 4647 [RFC4647] are RECOMMENDED as a matching schemes detailed in RFC 4647 [RFC4647] are RECOMMENDED as a
starting point for an implementation. The goal is to render the most starting point for an implementation. 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 field may be ignored. values of the Content-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 14 skipping to change at page 6, line 14
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 Field 6. The Content-Translation-Type Field
The Translation-Type field can be used in the individual language The Content-Translation-Type field can be used in the individual
message parts to identify the type of translation. Based on the language message parts to identify the type of translation. Based on
value of this parameter and the user's preferences, a conforming the value of this parameter and the user's preferences, a conforming
email client can determine which message part to display. email client can determine which message part to display.
This field can have one of three possible values: 'original', 'human' This field can have one of three possible values: 'original', 'human'
or 'automated' although other values may be added in the future. A or 'automated' although other values may be added in the future. A
value of 'original' is given in the language message part that is in value of 'original' is given in the language message part that is in
the original language. A value of 'human' is used when a language the original language. A value of 'human' is used when a language
message part is translated by a human translator or a human has message part is translated by a human translator or a human 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.
New values of the Content-Translation-Type header field
("translTypeExt" in the ABNF) are added according to procedure
specified in Section 10.3.
Examples of this field include: Examples of this field include:
Translation-Type: original Content-Translation-Type: original
Translation-Type: human Content-Translation-Type: human
The syntax of the Translation-Type field in ABNF RFC 5234 [RFC5234] The syntax of the Content-Translation-Type field in ABNF RFC 5234
is: [RFC5234] is:
Translation-Type = [FWS] translationtype Content-Translation-Type = [FWS] translationtype
FWS = <Defined in RFC 5322> FWS = <Defined in RFC 5322>
translationtype = "original" / "human" / "automated" / translTypeExt translationtype = "original" / "human" / "automated" /
translTypeExt = 1*atext translTypeExt
atext = <Defined in RFC 5322> translTypeExt = 1*atext
atext = <Defined in RFC 5322>
This references RFC 5322 [RFC5322] for the pre-defined rules FWS and This references RFC 5322 [RFC5322] for the pre-defined rules FWS and
atext. atext.
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
skipping to change at page 8, line 11 skipping to change at page 8, line 11
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 Content-Language: en
Translation-Type: original Content-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 Content-Language: es
Translation-Type: human Content-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 9, line 23 skipping to change at page 9, line 23
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 Content-Language: en
Translation-Type: original Content-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 Content-Language: es
Translation-Type: human Content-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 47 skipping to change at page 10, line 47
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 Content-Language: en
Translation-Type: original Content-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 11, line 25 skipping to change at page 11, line 25
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 <html><body>Hello, this message content is <b>provided</b> in
<i>your</i> language.</body></html> <i>your</i> language.</body></html>
--72530118999911999881-- --72530118999911999881--
--01189998819991197253 --01189998819991197253
Content-Type: message/rfc822 Content-Type: message/rfc822
Content-Language: es Content-Language: es
Translation-Type: human Content-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 12, line 28 skipping to change at page 12, line 28
997zF2hvZYeDEP5ftGV6Xzx2o9MAAAAASUVORK5CYII= 997zF2hvZYeDEP5ftGV6Xzx2o9MAAAAASUVORK5CYII=
--99911972530118999881-- --99911972530118999881--
--01189998819991197253-- --01189998819991197253--
9. Acknowledgements 9. 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, Barry Leiba, Sean Leonard, John Ned Freed, Randall Gellens, Gunnar Hellstrom, Barry Leiba, Sean
Levine, Alexey Melnikov, Addison Phillips, Julian Reschke, Pete Leonard, John Levine, Alexey Melnikov, Addison Phillips, Julian
Resnick, Brian Rosen, Fiona Tomkinson, Simon Tyler and Daniel Vargha. Reschke, Pete 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.
10. IANA Considerations 10. IANA Considerations
10.1. The multipart/multilingual MIME type 10.1. The multipart/multilingual MIME type
The multipart/multilingual MIME type will be registered with IANA The multipart/multilingual MIME type will be registered with IANA
including a reference to this document. This is the registration including a reference to this document. This is the registration
skipping to change at page 14, line 5 skipping to change at page 14, line 5
Person & email address to contact for further information: Person & email address to contact for further information:
Nik Tomkinson Nik Tomkinson
rfc.nik.tomkinson@gmail.com rfc.nik.tomkinson@gmail.com
Nathaniel Borenstein Nathaniel Borenstein
nsb@mimecast.com nsb@mimecast.com
Intended usage: Common Intended usage: Common
10.2. The Translation-Type Field 10.2. The Content-Translation-Type Field
The Translation-Type field will be added to the IANA "Permanent The Content-Translation-Type field will be added to the IANA
Message Header Field Names" registry. That entry will reference this "Permanent Message Header Field Names" registry. That entry will
document. This is the registration template: reference this document. This is the registration template:
Header field name: Translation-Type Header field name: Content-Translation-Type
Applicable protocol: mime Applicable protocol: mime
Status: Standard Status: Standard
Author/Change controller: IETF Author/Change controller: IETF
Specification document(s): RFC XXXX Specification document(s): RFC XXXX
Related information: none Related information: none
10.3. The Translation-Type Field Values 10.3. The Content-Translation-Type Field Values
IANA is requested to create a new registry for Translation-Type IANA is requested to create a new registry for Content-Translation-
Header Field values. New values must be registered using Type Header Field values. New values must be registered using
"Specification Required" IANA registration procedure. Registrations "Specification Required" IANA registration procedure. Registrations
must include translation type value, short description and a URI of must include translation type value, short description and a URI of
the specification. the specification.
This document also registers 3 initial values specified in Section 6. This document also registers 3 initial values specified below.
Value: original
Description:
Content in the original language
Reference: RFC XXXX
Value: human
Description:
Content that has been translated by a human translator
or a human has checked and corrected an automated translation
Reference: RFC XXXX
Value: automated
Description:
Content that has been translated by an electronic agent
without proofreading or subsequent correction
Reference: RFC XXXX
11. Security Considerations 11. 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
skipping to change at page 19, line 13 skipping to change at page 19, line 40
new values for the Translation-Type field. new values for the Translation-Type field.
12.16. Changes from draft-ietf-slim-multilangcontent-11 to draft-ietf- 12.16. Changes from draft-ietf-slim-multilangcontent-11 to draft-ietf-
slim-multilangcontent-12 slim-multilangcontent-12
o Updated the ABNF for Translation-Type to allow for future values. o Updated the ABNF for Translation-Type to allow for future values.
o Added section 10.3 to explain about the Translation-Type values o Added section 10.3 to explain about the Translation-Type values
and providing new values. and providing new values.
12.17. Changes from draft-ietf-slim-multilangcontent-12 to draft-ietf-
slim-multilangcontent-13
o Changed the field name Translation-Type to Content-Translation-
Type.
o Explicitly specified the 3 initial values for Content-Translation-
Type in the IANA Considerations section.
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>.
[RFC2047] Moore, K., "MIME (Multipurpose Internet Mail Extensions) [RFC2047] Moore, K., "MIME (Multipurpose Internet Mail Extensions)
 End of changes. 29 change blocks. 
40 lines changed or deleted 71 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/