Если всё проходит удачно, вы становитесь обладателем GTK2-шного Лазаря. Что в нём есть хорошего, кроме пакета бесплатных глюков, отвратительно размытых шрифтов в редакторе и отвратительно разбухших шрифтов в меню?.. Он - полностью юникодный, и кодировка utf-8 для него родная. Теперь вы (вставив в начале программы директиву {$codepage utf-8} ) можете совершенно спокойно вставлять в программу русские строки, и плевать, плевать, ПЛЕВАТЬ, поддерживает система русский язык или нет.
Но что-то я отвлёкся.
Предположим, написали вы нечто прочувствованное, вроде
- Код: Выделить всё
function Swear: string;
begin
Result:='Весь мир - 糞 です!';
end;
и получаете в результате... Хрен с бубликом вы получаете. Ибо засада тут в том, что такие вот строковые константы компилятор перегоняет... Нет, не в Utf8String, как вы могли бы подумать! Он перегоняет их в WideString! И при попытке впихнуть в AnsiString делает то, что обычно делает с русским текстом при подобном преобразовании - т.е. превращает в мокрое место.
Так что, вышеописанную функцию придётся поправить на WideString. И везде, где у вас объявляется переменная-константа, задавать ей тип WideString.
Вот. Одну засаду я нашёл. Кто-нибудь знает об ещё каких-нибудь?
З.Ы. Как укротить GTK2 я доискался-таки (а под KDE задача оказалась нетривиальной). Надо взять файл /usr/share/themes/<ваша любимая тема>/gtk-2.0/gtkrc , скопировать его в /home/<юзер>/gtkrc-2.0 (ибо, по закону подлости, этого файла там обычно нет), и добавить в начало строчку типа
gtk-font-name = "Verdana 8"
- всё, монстр укрощён, опухшие менюшки в Лазаре сдулись (особенно если выбрать тему Redmond95). Заодно оказываются укрощёнными и Файрфокс, и ДЦ++, и Крусадёр... Много кого.