Saké Mail Language Support

 

Endymion currently does not provide translations of the Saké Mail interface in languages other than English, but the entire system was specifically designed with the translator in mind. This document highlights a few items that may be of interest to customizers that need to translate the interface into different languages.

 

Language Support
The Saké Mail web mail system excels at supporting multiple languages. To our knowledge, there is not a language in use online anywhere in the world that cannot be supported with a Saké Mail installation. This includes not only the languages used in sending and receiving messages, but also the names of folders, the names of address aliases, etc.

The preferred method of supporting world languages is the use of the ISO-10646 character set, also known as Unicode. Using Unicode, a Saké Mail installation can automatically support any language right out of the box. Modern browsers support Unicode via the most common Unicode character encoding scheme, called "UTF-8". If you are using a browser such as the Microsoft Internet Explorer or Netscape that supports UTF-8 character encodings, then you have no need for language-specific character encodings. Figure 1 is an example of a Saké Mail installation that is displaying messages in English, Spanish, Norweigan, Greek, German, Japanese, Chinese, Greek, Thai, Hebrew, Yiddish, Farsi, Vietnamese, Polish and Slovak, all on the same page.

 

Figure 1: A Saké Mail installation simultaneously displaying English, Spanish, Norweigan, Greek, German, Japanese, Chinese, Greek, Thai, Hebrew, Yiddish, Farsi, Vietnamese, Polish and Slovak, with no special configuration.
(Image can be enlarged for more detail.)

 

Skins
Saké Mail's "skins" feature can be used to support different translations simultaneously. You can provide an English translation in a skin called "english" and a Spanish translation in a skin called "espanol", for example. You can set the default translation that users see by setting the "sake.defaultskin" value in your initialization file.

 

Character Encoding
You can specify the character encoding that is used in the interface by setting the encoding in the interface templates, exactly as you would any normal HTML page. Saké Mail will display the contents of messages using the Unicode/ISO-10646 character set specified in the HTML 4 Specification. Saké Mail understands message headers that are escape-encoded with ISO-8859-1 and UTF-8, and it understands message contents specified in any valid MIME character set. This means that messages in double-byte languages such as Chinese, Japanese and Korean will display properly without any special configuration in browsers that properly support the character set described in the HTML 4 specification. If support for older browsers is critical, you can revert to the old-style methods of supporting double-byte character encodings by explicitly specifying what character set to use in your templates with the "Content-type" meta header and the "sake.requestencoding" form parameter. You can also customize the specific character set used for outgoing messages in your "t_compose" template via the "sake.mail.send.encoding" parameter. If you are building an interface in some specific character set other than Unicode, then you cannot use the XML/XSL template mechanism. This is because the W3C specifies that all XML documents must be encoded in the ISO-10646 character sets. A document encoded in Big5 (a common Chinese encoding) or Shift-JIS (a common Japanese encoding) cannot be a valid XML document. The XML parsers that Saké Mail uses will break when they encounter these illegal characters. The solution is to use the HTML templates when you are using specific character sets. We strongly recommend not doing this, and using the Unicode/ISO-10646 encoding scheme recommended by the W3C. Using Unicode will allow your installation to support any language, not just your specific language.

You can also set your default character encoding on an application-wide basis by setting the "sake.outputencoding" value in your general.ini file. This method works if your entire application is going to use one character encoding. If you want to support more than one character encoding with your installation, for instance one skin for English and one skin for Chinese, then you should not set this value, and you should specify your output encoding in each skin using the above method.

 

Sending Messages
Saké Mail knows to use the ISO-8859-1 character set by default when sending messages. It also knows that if the message contains characters that cannot be expressed using ISO-8859-1 that it should send the message contents using the ISO-10646 character set, encoded with UTF-8. If you need to manually specify the encoding used when sending messages, you can modify configuration settings in the template "t_compose". Saké Mail uses UTF-8 for encoding the contents of the message that a user composes, so no modifications are necessary for supporting double-byte languages in browsers that conform to HTML 4 specifications.

 

Output Messages
All error and warning messages that Saké Mail produces originate in the templates. This means that it is possible to completely translate the entire application into your chosen language without making any code modifications.

 

Date Formats
The date formats that Saké Mail uses are specified in the templates. The precise format of the dates used in the message lists are specified by the snippet "DATEFORMAT" in the templates "t_f_messagelist" and "t_nf_messagelist", and the format of the dates used on the message output page are specified by the same snippet in the templates "t_f_message" and "t_NF_message". The language used in the names of months, days, time zones, and other language-specific items is specified in the snippet "LOCALE" in the same templates. The locale is specified as two names, separated by a comma. The first name is a valid ISO language code, as defined by ISO-639. You can find a list of these codes in many places, including http://www.ics.uci.edu/pub/ietf/http/related/iso639.txt The second name si a valid ISO country code, as defined by ISO-3166. You can find a list of these codes in many places, including http://www.chemie.fu-berlin.de/diverse/doc/ISO_3166.html. An example of a valid locale is the default "en, US", which specifies that Saké Mail should list dates in English, in the style used in the United States.

 

Spell Check
The dictionary used for the spell check functionality can be assigned on a skin-by-skin basis, so that you can provide spell checking in the appropriate language when you provide translations. More information on how to provide this level of customization is available in the spell check configuration documentation.

Copyright © 1999 - 2002 Endymion Corporation
All rights reserved.
Carpe Noctem