Working Draft

CalConnect Standard

CC/WD 56010:2019
vObject — Internationalization
TC VCARD
Ronald TseAuthor Peter Kwan YuAuthor Mike DouglassAuthor
CalConnect Standard
Working Draft

Warning for Drafts

This document is not a CalConnect Standard. It is distributed for review and comment, and is subject to change without notice and may not be referred to as a Standard. Recipients of this draft are invited to submit, with their comments, notification of any relevant patent rights of which they are aware and to provide supporting documentation.

 


 



Foreword

This document updates the following specifications:

This work is produced by the CalConnect TC-VCARD and TC-CALENDAR committees.


Introduction

vCard RFC 6350 and iCalendar RFC 5545 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.

Previously, the only internationalization method for vCard RFC 6350 and iCalendar RFC 5545 standards was the language property parameter (3.2.10).

This document:

The methods described in this document are intended to be used by vObject-compliant standards, such as vCard 4.0 RFC 6350 and iCalendar RFC 5545.

This is a work product of the CalConnect TC-VCARD CalConnect TC VCARD and TC-CALENDAR CalConnect TC CALENDAR committees.


Acknowledgements

The authors wish to thank their families and the following parties who helped this materialize and for their support of a better and vObject-enabled world:

vObject — Internationalization

1.  Scope

Methods described in this document are intended to be used by vObject-compliant standards, such as vCard 4.0 RFC 6350 and iCalendar RFC 5545.

2.  Normative references

The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.

IETF RFC 5545, Internet Calendaring and Scheduling Core Object Specification (iCalendar)

IETF RFC 6350, vCard Format Specification

IETF I-D.calconnect-vobject-vformat, The vObject Model and vFormat Syntax

3.  Terms and definitions

For the purposes of this document, the following terms and definitions apply.

3.1. 

General

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 RFC 2119 RFC 8174 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.

Notation in this document is described in ABNF RFC 5234 as used by RFC 6350.

Definitions from RFC 6350 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.

3.2.  Definitions

3.2.1. 

transliteration

operation which consists of representing the characters (3.1.4.02) of an entirely alphabetical (3.1.5.16) character or alphanumeric character writing system (3.1.6.01) by the characters of the conversion alphabet

[SOURCE: 3.1.6.11]

3.2.2. 

script

particular graphic representation or class of representations of a set of characters used to write one or more languages

[SOURCE: 3.1.6.02]

3.2.3. 

phonetic transcription

representation or modelling of spoken language based on the sound system of the respective language 3.5

4.  Property Parameter Usage Clarification: LANGUAGE

This section clarifies the intent of the LANGUAGE property parameter in RFC 5545 and RFC 6350 to be for the identification of the language used in the property value where the parameter is specified.

The RFC 5646 defined language-tag allows specification of multiple attributes (called “subtags”) in addition to just language. Its basic form includes:

In practical usage of vObject standards, including RFC 5545 and RFC 6350, 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 and 5.1, such that the LANGUAGE property parameter SHOULD only support the mandatory language subtag.

Other subtags MAY be supplied as specified in RFC 5646, but they are purely for informational purposes not used in the vObject specification.

Namespace

Property parameter name

LANGUAGE

Purpose

To specify the language used in the property value.

Value type

LANGUAGE-TAG 4.8

Description

As provided above.

4.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

Figure 1

Examples

N;LANGUAGE=en:Miyazaki;Hayao;;;
N;LANGUAGE=jp:宮崎;駿;;;

Figure 2

5.  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 RFC 5545 and RFC 6350 for reasons stated in Clause 4.

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.

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

5.1.  vFormat Implementation of SCRIPT

Format definition

scriptparam = "SCRIPT" "=" script-code
            ; script-code defined in the value type SCRIPT-CODE

Figure 3

Examples

N;SCRIPT=Hira;LANGUAGE=jp:みやざき;はやお;;;
N;SCRIPT=Hani;LANGUAGE=jp:宮崎;駿;;;

Figure 4

6.  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:

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.

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 (Clause 4) and SCRIPT (Clause 5) 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.

6.1.  vFormat Implementation of PHONETIC

Format definition

phoneticparam = "PHONETIC" "=" phonetic
phonetic      = 4ALPHA  ; ISO XXXXX 4-digit phonetic system code

Figure 5

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;;

Figure 6

7.  Security Considerations

Security considerations of the vObject formats themselves MUST be adhered to, including:

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.

8.  IANA Considerations

IANA is requested to register the following property parameters and value types in the corresponding iCalendar and vCard registries.

8.1.  iCalendar and vCard Property Parameter Registration: SCRIPT

Namespace

Parameter name

SCRIPT

Purpose

Given in Clause 5.

Description

Given in Clause 5.

Format definition

Given in Clause 5.

Examples

Given in Clause 5.

8.2.  iCalendar and vCard Property Parameter Registration: PHONETIC

Namespace

Parameter name

PHONETIC

Purpose

Given in Clause 6.

Description

Given in Clause 6.

Format definition

Given in Clause 6.

Examples

Given in Clause 6.

8.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

Figure 7

Examples

Latn, Cyrl, Hani

8.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

Figure 8

Examples

ipa, jyut, ping


Appendix A
(informative)

<acknowledgements id="_acknowledgements" obligation="informative"><title>Acknowledgements</title><p id="_bfa4ffac-c6dc-44a6-a7ee-ed109a7d5ebf">The authors wish to thank their families and the following parties who helped this materialize and for their support of a better and vObject-enabled world:</p> <ul id="_72db40df-7bff-4b5e-80ef-6c7552d769d3"> <li> <p id="_cdc18c3b-49f0-4bbe-b3b4-7f9f2cfd4a90">The CalConnect TC-VCARD and TC-CALENDAR committees</p> </li> <li> <p id="_c100bfbd-7bd4-44d5-baae-0a99d621c100">The CalConnect Technical Coordination Committee (“TCC”)</p> </li> <li> <p id="_4728b4ea-1b49-4bc0-a875-6ebe55e63de6">Members and the Board of Directors of CalConnect</p> </li> </ul></acknowledgements>

Bibliography

[1]  CalConnect TC VCARD, CalConnect VCARD Technical Committee

[2]  CalConnect TC CALENDAR, CalConnect CALENDAR Technical Committee

[3]  ISO 5127 (all parts), Information and documentation – Foundation and vocabulary

[4]  ISO 24624:2016, Language resource management – Transcription of spoken language

[5]  IETF RFC 2119, Key words for use in RFCs to Indicate Requirement Levels

[6]  IETF RFC 3986, Uniform Resource Identifier (URI): Generic Syntax

[7]  IETF RFC 5646, Tags for Identifying Languages

[8]  IETF RFC 8174, Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words

[9]  IETF RFC 6321, xCal: The XML Format for iCalendar

[10]  IETF RFC 7265, jCal: The JSON Format for iCalendar

[11]  IETF RFC 7095, jCard: The JSON Format for vCard

[12]  IETF RFC 6352, CardDAV: vCard Extensions to Web Distributed Authoring and Versioning (WebDAV)

[13]  IETF RFC 6351, xCard: vCard XML Representation

[14]  IETF RFC 4791, Calendaring Extensions to WebDAV (CalDAV)

[15]  IETF RFC 5234, Augmented BNF for Syntax Specifications: ABNF

[16]  IETF RFC 8126, Guidelines for Writing an IANA Considerations Section in RFCs