1 (edited by Oreolek 2011-12-12 07:18:35)

Topic: INSTEAD and cjk

[Russian version is under the spoiler below]

The problem of wordwrapping is basically here:

util.c, line 60:

int is_space(int c)
{
    return (c == ' ' || c == '\t');
}

Of course, the roots of this problem are wide and heavy :-) INSTEAD must accept any space character, as described here and consider the text encoding for line width.

The second problem is justifying.  The line must be scaled by width of the characters. But Asian characters are far wider than European ones.

The third problem - inconvenience, I say - is none of theme fonts support Japanese at the moment. So setting Japanese based on locale would make gibberish out of the menu.

I'll write my solutions here - when I'll prepare them. The wrapping problem is rather simple, but the justifying requires very serious work.


Проблема переноса лежит здесь, как минимум:

util.c, строка 60:

int is_space(int c)
{
    return (c == ' ' || c == '\t');
}

Конечно, её корни широки и тяжелы :-) INSTEAD должен понимать все виды пробелов, которые описаны здесь и учитывать кодировку текста при расчёте длины строк.

Вторая проблема — выравнивание по ширине. Строка должна быть выровнена по ширине всех символов. Но японские символы намного шире европейских.

Третья проблема - я бы сказал, неудобство - в том, что шрифты всех тем не поддерживают японский. Если выставить язык на основе системной локали, то в меню программы будет полная нелепица из квадратиков.

Я напишу свои решения здесь же, когда их приготовлю. Проблема переноса достаточно проста, но выравнивание требует серьёзного подхода.

Александр Яковлев, к вашим услугам.

Re: INSTEAD and cjk

Oreolek, i have moved your message, it is contain only abstract thinking, so, if you want, you may write them here...

Re: INSTEAD and cjk

You didn't bother to READ that, did you?

Александр Яковлев, к вашим услугам.

Re: INSTEAD and cjk

cjk support will be in next release (1.5.3)

Re: INSTEAD and cjk

Moved this topic to Misc. Because it's a flame. smile