RT 5.0.2 Documentation
RT::I18N
- NAME
- Init
- encoding
- SetMIMEEntityToUTF8 $entity
- IsTextualContentType $type
- SetMIMEEntityToEncoding Entity => ENTITY, Encoding => ENCODING, PreserveWords => BOOL, IsOut => BOOL
- DecodeMIMEWordsToUTF8 $raw
- _FindOrGuessCharset MIME::Entity, $head_only
- _GuessCharset STRING
- _CanonicalizeCharset NAME
- SetMIMEHeadToEncoding MIMEHead => HEAD, From => OLD_ENCODING, To => NEW_Encoding, PreserveWords => BOOL, IsOut => BOOL
- EncodeFromToWithCroak $string, $from, $to
NAME
RT::I18N - a base class for localization of RT
Init
Initializes the lexicons used for localization.
encoding
Returns the encoding of the current lexicon, as yanked out of __ContentType's "charset" field. If it can't find anything, it returns 'ISO-8859-1'
SetMIMEEntityToUTF8 $entity
An utility function which will try to convert entity body into utf8. It's now a wrap-up of SetMIMEEntityToEncoding($entity, 'utf-8').
IsTextualContentType $type
An utility function that determines whether $type is textual, meaning that it can sensibly be converted to Unicode text.
Currently, it returns true iff $type matches this regular expression (case-insensitively):
^(?:text/(?:plain|html)|message/rfc822)\b
SetMIMEEntityToEncoding Entity => ENTITY, Encoding => ENCODING, PreserveWords => BOOL, IsOut => BOOL
An utility function which will try to convert entity body into specified charset encoding (encoded as octets, *not* unicode-strings). It will iterate all the entities in $entity, and try to convert each one into specified charset if whose Content-Type is 'text/plain'.
If PreserveWords is true, values in mime head will be decoded.(default is false)
Incoming and outgoing mails are handled differently, if IsOut is true(default is false), it'll be treated as outgoing mail, otherwise incomding mail:
incoming mail: 1) find encoding 2) if found then try to convert to utf-8 in croak mode, return if success 3) guess encoding 4) if guessed differently then try to convert to utf-8 in croak mode, return if success 5) mark part as application/octet-stream instead of falling back to any encoding
outgoing mail: 1) find encoding 2) if didn't find then do nothing, send as is, let MUA deal with it 3) if found then try to convert it to outgoing encoding in croak mode, return if success 4) do nothing otherwise, keep original encoding
This function doesn't return anything meaningful.
DecodeMIMEWordsToUTF8 $raw
An utility method which mimics MIME::Words::decode_mimewords, but only limited functionality. Despite its name, this function returns the bytes of the string, in UTF-8.
_FindOrGuessCharset MIME::Entity, $head_only
When handed a MIME::Entity will first attempt to read what charset the message is encoded in. Failing that, will use Encode::Guess to try to figure it out
If $head_only is true, only guesses charset for head parts. This is because header's encoding (e.g. filename="...") may be different from that of body's.
_GuessCharset STRING
Use Encode::Guess and Encode::Detect::Detector to try to figure it out the string's encoding.
_CanonicalizeCharset NAME
canonicalize charset, return lowercase version. special cases are: gb2312 => gbk, utf8 => utf-8
SetMIMEHeadToEncoding MIMEHead => HEAD, From => OLD_ENCODING, To => NEW_Encoding, PreserveWords => BOOL, IsOut => BOOL
Converts a MIME Head from one encoding to another. This totally violates the RFC. We should never need this. But, Surprise!, MUAs are badly broken and do this kind of stuff all the time
EncodeFromToWithCroak $string, $from, $to
Try to encode string from encoding $from to encoding $to in croak mode
return (1, $encoded_string) if success, otherwise (0, $error)
← Back to index