Subject: Sieve Internationalization

From: Chris Newman <[email-masked]>
Date: Wed, 30 Apr 1997 09:54:08 -0700 (PDT)

You're going to hate me for this, but IETF standards have to deal with
this issue.

Suggestions:

(1) Sieve scripts use UTF-8 [RFC-2044].  This may require some text for
message bodies (either all Sieve messages are US-ASCII/UTF-8 or
non-UTF-8 Sieve messages have to be quoted-printable or base64 encoded).

(2) Use the concept of "comparators" (formerly ordering functions) from
ACAP (can even use ACAP's registry).

Define match-keyword as:

match-keyword = ("contains" / "matches" / "is") ["-" comparator]

I'd be tempted to make the default comparator be "en-nocase" for reasons
I've previously stated, although I'd live with "octet" as the default.

Note that ACAP's registry will require comparator registrations to state
if they're suitable for substring matching (some comparators would only
work with "is").

Finally, comparators would have extension names of "comparator-<name>".

(3) Require Sieve implementations to map MIME header encodings to utf-8.
This is probably the only way to reasonably do international searching.
Tim, you should be able to use code from the Cyrus IMAP server for this.

(4) Language tagging probably isn't necessary in Sieve itself since it
doesn't display strings.  Probably need a way to include a
"Content-Language" header in reply messages, however.