[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-devel
Subject:    Re: Seeing Korean character
From:       Warwick Allison <warwick () troll ! no>
Date:       1999-04-30 17:58:33
[Download RAW message or body]

On Thu, 29 Apr 1999, you wrote:
>On Thu, Apr 29, 1999 at 12:58:05PM +0200, Warwick Allison wrote:
>: 
>: The setDefaultCodec() should not be needed - the codec should do all you need,
>: and only when you need it.  The codec to use in a codec->toUnicode() is the
>: QTextCodec::codecForLocale(), or better, use the encoding named in the .mo file
>: to choose a codec.
>
>Ok! I got it. but I don't understand last sentance "use the ... a codec". 

Standard .po files declare the encoding in which they are written.  I presume
this information is somehow available in the .mo file too.  THIS is the
encoding that should be used to choose a codec to convert such text to Unicode.
In pseudocode:

KLocale::loadMOFile()
{
	...
	const char* charset = mo_file.encodingName();
	this->i18n_codec = QTextCodec::codecForName(charset);
	if ( !codec )
		fatal("No codec for %s", charset);
	...
}

QString KLocale::translate(const char* txt)
{
	const char* translation = ... lookup txt;
	if ( !translation )
		return QString(txt); // Latin1
	return i18n_codec->toUnicode(translation);
}


Of course, Qt's builtin QTranslator stuff works with Unicode form the start
(the translation files are stored in Unicode), but above we stick to KDE's
existing techniques - they can be modified later if the need arises.

--
Warwick

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic