Calendaring Extensions R. Tse Internet-Draft P. Tam Updates: 5545, 6321, 6350, 6351, 7953, Ribose 7265, 7095 (if approved) M. Douglass Intended status: Standards Track Spherical Cow Group Expires: December 10, 2018 June 8, 2018 vObject Internationalization draft-calconnect-vobject-i18n-00 Abstract This document specifies mechanisms for the internationalization of vObject content and its realization in vFormat. This document updates the following specifications: o I-D.calconnect-vobject-vformat, The vObject Model and vFormat Syntax o RFC 6350, vCard version 4.0 o RFC 5545, Internet Calendaring and Scheduling Core Object Specification (iCalendar) o RFC 7953, Calendar Availability Extensions This work is produced by the CalConnect TC-VCARD and TC-CALENDAR committees. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at https://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on December 10, 2018. Tse, et al. Expires December 10, 2018 [Page 1] Internet-Draft vObject and vFormat June 2018 Copyright Notice Copyright (c) 2018 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Terms and Definitions . . . . . . . . . . . . . . . . . . . . 3 2.1. Definitions . . . . . . . . . . . . . . . . . . . . . . . 4 3. Property Parameter Usage Clarification: LANGUAGE . . . . . . 4 3.1. vFormat Implementation of LANGUAGE . . . . . . . . . . . 5 4. Property Parameter: SCRIPT . . . . . . . . . . . . . . . . . 5 4.1. vFormat Implementation of SCRIPT . . . . . . . . . . . . 6 5. Property Parameter: PHONETIC . . . . . . . . . . . . . . . . 6 5.1. vFormat Implementation of PHONETIC . . . . . . . . . . . 7 6. Security Considerations . . . . . . . . . . . . . . . . . . . 7 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 7.1. iCalendar and vCard Property Parameter Registration: SCRIPT . . . . . . . . . . . . . . . . . . . . . . . . . 8 7.2. iCalendar and vCard Property Parameter Registration: PHONETIC . . . . . . . . . . . . . . . . . . . . . . . . 8 7.3. iCalendar and vCard Registration for Value Data Type: SCRIPT-CODE . . . . . . . . . . . . . . . . . . . . . . . 9 7.4. iCalendar and vCard Registration for Value Data Type: PHONETIC-CODE . . . . . . . . . . . . . . . . . . . . . . 9 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 8.1. Normative References . . . . . . . . . . . . . . . . . . 10 8.2. Informative References . . . . . . . . . . . . . . . . . 10 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 1. Introduction vCard [RFC6350] and iCalendar [RFC5545] are standards compliant to the vObject data model [I-D.calconnect-vobject-vformat-03]. These standards are used worldwide and require proper certain localization elements suitable for multi-cultural use. Tse, et al. Expires December 10, 2018 [Page 2] Internet-Draft vObject and vFormat June 2018 Previously, the only internationalization method for vCard [RFC6350] and iCalendar [RFC5545] standards was the "language" property parameter (3.2.10 [RFC5545]). This document: o defines additional internationalization features for the vObject data model, including a separate property parameter that denotes the script used in a property value, and a method to specify pronunciation of a property value o defines realization methods of vObject internationalization in vFormat The methods described in this document are intended to be used by vObject-compliant standards, such as vCard 4.0 [RFC6350] and iCalendar [RFC5545]. This is a work product of the CalConnect TC-VCARD [CALCONNECT-VCARD] and TC-CALENDAR [CALCONNECT-CALENDAR] committees. 2. Terms and Definitions The key words "*MUST*", "*MUST NOT*", "*REQUIRED*", "*SHALL*", "*SHALL NOT*", "*SHOULD*", "*SHOULD NOT*", "*RECOMMENDED*", "*NOT RECOMMENDED*", "*MAY*", and "*OPTIONAL*" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here. The key words "*Private Use*", "*Experimental Use*", "*Hierarchical Allocation*", "*First Come First Served*", "*Expert Review*", "*Specification Required*", "*RFC Required*", "*IETF Review*", "*Standards Action*" and "*IESG Approval*" in this document are to be interpreted as described in 4 [RFC8126]. Notation in this document is described in ABNF [RFC5234] as used by [RFC6350]. Definitions from [RFC6350] apply to this specification except when explicitly overridden. All names of properties, property parameters, enumerated property values, and property parameter values are case-insensitive. However, all property values are case-sensitive, unless otherwise stated. Tse, et al. Expires December 10, 2018 [Page 3] Internet-Draft vObject and vFormat June 2018 2.1. Definitions phonetic system method of transcription of language in a script that allows phonetic reproduction 3. Property Parameter Usage Clarification: LANGUAGE This section clarifies the intent of the "LANGUAGE" property parameter in [RFC5545] and [RFC6350] to be for the identification of the language used in the property value where the parameter is specified. The [RFC5646] defined "language-tag" allows specification of multiple attributes (called "subtags") in addition to just language. Its basic form includes: o a mandatory language subtag, using a language identifier from ISO 639 (-2, -3) (called a "primary" or "extended" language subtag) o an optional script subtag, using a script identifier from ISO 15924 o an optional region subtag, using country codes listed in ISO 3166 or a UN numeric code o one or more, optional, variant and extension subtags defined in the IANA language subtag registry. In practical usage of vObject standards, including [RFC5545] and [RFC6350], it is determined that the combinatorial enumeration of non-language subtags often cause unnecessary confusion in interpretation and parsing, especially when the registry contain variant and extension subtags that either conflict in semantics or have overly restrictive in their supported prefixes. This document therefore clarifies the intent of 3.2.10 [RFC5545] and 5.1 [RFC6350], such that the "LANGUAGE" property parameter *SHOULD* only support the mandatory language subtag. Other subtags *MAY* be supplied as specified in [RFC5646], but they are purely for informational purposes not used in the vObject specification. Namespace Property parameter name "LANGUAGE" Tse, et al. Expires December 10, 2018 [Page 4] Internet-Draft vObject and vFormat June 2018 Purpose To specify the language used in the property value. Value type "LANGUAGE-TAG" 4.8 [RFC6350] Description As provided above. 3.1. vFormat Implementation of LANGUAGE The value of the "LANGUAGE" property parameter is re-defined as shown below. Format definition languageparam = "LANGUAGE" "=" language *(subpart) language = iso-639-3-code / iso-639-2-code ; a 2-alpha or 3-alpha language code ; defined in ISO 639 subpart = "-" *alphanum ; all other subparts unsupported Examples N;LANGUAGE=en:Miyazaki;Hayao;;; N;LANGUAGE=jp:宮崎;駿;;; 4. Property Parameter: SCRIPT The "SCRIPT" property parameter specifies the written script used in the property value which contains the parameter, which is amongst the valid codes in the ISO 15924 registry. It is separated from the "LANGUAGE" property parameter defined in [RFC5545] and [RFC6350] for reasons stated in Section 3. Namespace Property parameter name SCRIPT Purpose To specify the script used in the property value, which is amongst the valid codes in the ISO 15924 registry. Tse, et al. Expires December 10, 2018 [Page 5] Internet-Draft vObject and vFormat June 2018 Value type TEXT, a single value valid in the ISO 15924 script registry. Description The property value of which this property parameter applies to must have identical structure to 4.1. vFormat Implementation of SCRIPT Format definition scriptparam = "SCRIPT" "=" script-code ; script-code defined in the value type SCRIPT-CODE Examples N;SCRIPT=Hira;LANGUAGE=jp:みやざき;はやお;;; N;SCRIPT=Hani;LANGUAGE=jp:宮崎;駿;;; 5. Property Parameter: PHONETIC A number of contact managers have long used "X-properties" to to store phonetic information of a vCard's subject, such as "X-PHONETIC- NAME", "X-PHONETIC-FIRST-NAME" and "X-PHONETIC-LAST-NAME". However, this is an issue for multiple reasons: o The value of the X-property does not define the phonetic system used for its transcription; o This X-property usage does not enable interoperability since it does not require specification of the language transcribed, as well as the script of the resulting transcription; o The scheme of using X-properties does not allow representation of phonetics on other vCard values. This section defines three property parameters used to store pronunciation information of a property value: 1. The script used in the pronunciation system; 2. An identifier of the pronunciation system used; 3. The source language that was transcribed by the pronunciation system. Tse, et al. Expires December 10, 2018 [Page 6] Internet-Draft vObject and vFormat June 2018 The "PHONETIC" property parameter specifies the phonetic system used in the transcription of the property value, identified by the phonetic system code from the ISO XXXXX phonetic system registry. This property parameter is often applied together with the "LANGUAGE" (Section 3) and "SCRIPT" (Section 4) property parameters. Namespace Property parameter name PHONETIC Purpose To specify the phonetic system used in the property value, which is amongst the valid codes in the ISO XXXXX registry. Value type TEXT, a single value valid in the ISO XXXXX phonetic system registry. Description The property value of which this property parameter applies to must take an identical structure to the property value without application of this property parameter. 5.1. vFormat Implementation of PHONETIC Format definition phoneticparam = "PHONETIC" "=" phonetic phonetic = 4ALPHA ; ISO XXXXX 4-digit phonetic system code Examples N;SCRIPT=Hant;LANGUAGE=zho:孫;中山;文,逸仙;; N;SCRIPT=Hans;LANGUAGE=zho:孙;中山;文,逸仙;; N;PHONETIC=jyut;SCRIPT=Latn;LANGUAGE=yue:syun1;zung1saan1;man4,jat6sin1;; N;PHONETIC=ping;SCRIPT=Latn;LANGUAGE=cmn:sun;zhongshan;rixian;; 6. Security Considerations Security considerations of the vObject formats themselves *MUST* be adhered to, including: o vCard: [RFC6350] o iCalendar: [RFC5545], [RFC4791] Tse, et al. Expires December 10, 2018 [Page 7] Internet-Draft vObject and vFormat June 2018 o vObject: [I-D.calconnect-vobject-vformat-03] vObject formats, especially for calendaring, scheduling and contact exchange, often involve privacy-sensitive information. Internationalization features defined in this document *MAY* pose risk of exposing private information if interchanged through unprotected communication channels. Mechanisms used for the transmission of such information should implement security measures to protect against possible threats, such as eavesdropping, replay, message insertion, deletion, modification, and man-in-the-middle attacks. 7. IANA Considerations IANA is requested to register the following property parameters and value types in the corresponding iCalendar and vCard registries. 7.1. iCalendar and vCard Property Parameter Registration: SCRIPT Namespace Parameter name SCRIPT Purpose Given in Section 4. Description Given in Section 4. Format definition Given in Section 4. Examples Given in Section 4. 7.2. iCalendar and vCard Property Parameter Registration: PHONETIC Namespace Parameter name PHONETIC Purpose Given in Section 5. Description Tse, et al. Expires December 10, 2018 [Page 8] Internet-Draft vObject and vFormat June 2018 Given in Section 5. Format definition Given in Section 5. Examples Given in Section 5. 7.3. iCalendar and vCard Registration for Value Data Type: SCRIPT-CODE Value name SCRIPT-CODE Purpose Indicate script used in property value using a valid value from the ISO 15924 registry. Description Used by the SCRIPT property parameter. Format definition script-code = 4ALPHA ; ISO 15924 4-digit script code Examples "Latn", "Cyrl", "Hani" 7.4. iCalendar and vCard Registration for Value Data Type: PHONETIC- CODE Value name PHONETIC-CODE Purpose Indicate phonetic system used in the transcription of property value, using a valid value from the ISO XXXXX registry. Description Used by the SCRIPT property parameter. Format definition phonetic-code = 4ALPHA ; ISO XXXXX 4-digit script code Examples "ipa", "jyut", "ping" Tse, et al. Expires December 10, 2018 [Page 9] Internet-Draft vObject and vFormat June 2018 8. References 8.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, . [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform Resource Identifier (URI): Generic Syntax", STD 66, RFC 3986, DOI 10.17487/RFC3986, January 2005, . [RFC5545] Desruisseaux, B., Ed., "Internet Calendaring and Scheduling Core Object Specification (iCalendar)", RFC 5545, DOI 10.17487/RFC5545, September 2009, . [RFC5646] Phillips, A., Ed. and M. Davis, Ed., "Tags for Identifying Languages", BCP 47, RFC 5646, DOI 10.17487/RFC5646, September 2009, . [RFC6350] Perreault, S., "vCard Format Specification", RFC 6350, DOI 10.17487/RFC6350, August 2011, . [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 8126, DOI 10.17487/RFC8126, June 2017, . [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, . 8.2. Informative References [CALCONNECT-CALENDAR] The Calendaring and Scheduling Consortium, "CalConnect CALENDAR Technical Committee", April 2018, . Tse, et al. Expires December 10, 2018 [Page 10] Internet-Draft vObject and vFormat June 2018 [CALCONNECT-VCARD] The Calendaring and Scheduling Consortium, "CalConnect VCARD Technical Committee", April 2018, . [I-D.calconnect-vobject-vformat-03] Tse, R., Tam, P., Daboo, C., and K. Murchison, "The vObject Model and vFormat Syntax", draft-calconnect- vobject-vformat-03 (work in progress), June 2018. [RFC4791] Daboo, C., Desruisseaux, B., and L. Dusseault, "Calendaring Extensions to WebDAV (CalDAV)", RFC 4791, DOI 10.17487/RFC4791, March 2007, . [RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax Specifications: ABNF", STD 68, RFC 5234, DOI 10.17487/RFC5234, January 2008, . [RFC6321] Daboo, C., Douglass, M., and S. Lees, "xCal: The XML Format for iCalendar", RFC 6321, DOI 10.17487/RFC6321, August 2011, . [RFC6351] Perreault, S., "xCard: vCard XML Representation", RFC 6351, DOI 10.17487/RFC6351, August 2011, . [RFC6352] Daboo, C., "CardDAV: vCard Extensions to Web Distributed Authoring and Versioning (WebDAV)", RFC 6352, DOI 10.17487/RFC6352, August 2011, . [RFC7095] Kewisch, P., "jCard: The JSON Format for vCard", RFC 7095, DOI 10.17487/RFC7095, January 2014, . [RFC7265] Kewisch, P., Daboo, C., and M. Douglass, "jCal: The JSON Format for iCalendar", RFC 7265, DOI 10.17487/RFC7265, May 2014, . [RFC7953] Daboo, C. and M. Douglass, "Calendar Availability", RFC 7953, DOI 10.17487/RFC7953, August 2016, . Tse, et al. Expires December 10, 2018 [Page 11] Internet-Draft vObject and vFormat June 2018 [RFC7986] Daboo, C., "New Properties for iCalendar", RFC 7986, DOI 10.17487/RFC7986, October 2016, . [RFC8259] Bray, T., Ed., "The JavaScript Object Notation (JSON) Data Interchange Format", STD 90, RFC 8259, DOI 10.17487/RFC8259, December 2017, . Authors' Addresses Ronald Henry Tse Ribose Suite 1111, 1 Pedder Street Central Hong Kong Email: ronald.tse@ribose.com URI: https://www.ribose.com Peter Kwan Yu Tam Ribose Suite 1111, 1 Pedder Street Central Hong Kong Email: peter.tam@ribose.com URI: https://www.ribose.com Mike Douglass Spherical Cow Group 226 3rd Street Troy, NY 12180 United States of America Email: mdouglass@sphericalcowgroup.com URI: http://sphericalcowgroup.com Tse, et al. Expires December 10, 2018 [Page 12]