Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2010.03.21;
Скачать: [xml.tar.bz2];

Вниз

Китайский язык   Найти похожие ветки 

 
_REA   (2009-05-25 11:49) [0]

Хотят от меня странного - чтобы в программе были китайские иероглифы. Как бы так сделать, чтобы и программу на юникод не переделывать и чтобы отдельные надписи сделать иероглифами? Их вообще в 255 символов можно впихать (какой нибудь упрощенный китайский)? Кто-нибудь сталкивался с этим?


 
sniknik ©   (2009-05-25 12:00) [1]

> Как бы так сделать, чтобы и программу на юникод не переделывать и чтобы отдельные надписи сделать иероглифами?
переделать не программу, а только отдельные надписи.
есть компоненты TNT (название от бесплатных, сейчас они же платные и по другому называются)


 
Игорь Шевченко ©   (2009-05-25 12:32) [2]


> Как бы так сделать, чтобы и программу на юникод не переделывать


поставить китайскую Windows


 
_REA   (2009-05-25 12:38) [3]

>переделать не программу, а только отдельные надписи
да вот как то совсем ничего не хочется глобально переделывать :)
тем более что там часть надписей (если не большая часть) выводятся вручную. Программ просто сильно много и по-хорошему надо бы все переделать, но ни возможности ни времени нет. Да и часть вообще не я писал.

>поставить китайскую Windows
а можно виндоус обычную, но как-то с китайским языком что бы?
Работать то надо на русском, но отчеты выдавать на китайском.


 
clickmaker ©   (2009-05-25 12:46) [4]

панель управления - региональные настройки - языки - [x] установить файлы для восточных языков


 
Игорь Шевченко ©   (2009-05-25 12:54) [5]


> а можно виндоус обычную, но как-то с китайским языком что
> бы?
> Работать то надо на русском, но отчеты выдавать на китайском.
>


Тогда юникод. В обычной Windows кодовая страница по умолчанию не позволяет отображать китайский


 
_REA   (2009-05-25 13:08) [6]

>В обычной Windows кодовая страница по умолчанию не позволяет отображать китайский

даже с учетом галочки в Control Panel Установить поддержку языков с письмом иероглифами? А тогда оно зачем?


 
Игорь Шевченко ©   (2009-05-25 13:39) [7]


> даже с учетом галочки в Control Panel Установить поддержку
> языков с письмом иероглифами? А тогда оно зачем?


Для юникода


 
_REA   (2009-05-25 14:06) [8]

Поставил я эту галку, выбрал в TLabel шрифт @Arial Unicode MS, выбрал charset CHINESEBIG5_CHARSET и как-то оно вывело мне на каждые две русские буквы Caption по одному иероглифу. Это типа юникод такой?


 
Игорь Шевченко ©   (2009-05-25 14:12) [9]


>  Это типа юникод такой?


Для TLabel - да, только такой. TLabel юникода не умеет


 
clickmaker ©   (2009-05-25 14:26) [10]

TUnicodeLabel = class(TCustomLabel)
 FUnicodeCaption: WideString;
...
 function GetLabelText: WideString; reintroduce;
 procedure DoDrawText(var Rect: TRect; Flags: Longint); override;

function TUnicodeLabel.GetLabelText: WideString;
begin
 Result := UnicodeCaption;
end;

procedure TUnicodeLabel.DoDrawText(var Rect: TRect; Flags: Longint);
begin
 ...
 DrawTextW(Canvas.Handle, PWideChar(Text), Length(Text), Rect, Flags);
 ...
end;


 
_REA   (2009-05-25 14:43) [11]

А оно типа и так работает, если в DrawText указать длину -1
Мне как раз Label и не надо и юникод по большому счету тоже - надо отдельные надписи иероглифами.
Причем сейчас можно одновременно писать по английски и китайски, DrawText сам это разбирает, хотя нигде у меня WideString не объявлен.
В общем меня такой вариант устраивает, переделаю TextOut на DrawText, где надо и вуаля.

И кстати я тут видел забавную штуку - можно в программе переопределить уже определенные классы. Т.е. взять и поиздеваться над стандартным TLabel превратив его в Unicode например. Это они в CodeGear так поиздевались над DBGrid переопределив там отрисовку для поддержки XP тем.

Всем спасибо за помощь!


 
DVM ©   (2009-05-25 15:00) [12]


> какой нибудь упрощенный китайский

китайской эллочки-людоедки


 
_REA   (2009-05-25 15:07) [13]

>китайской эллочки-людоедки
их китайцев не поймешь, они и сами половину иероглифов не помнят и в каждой провинции там свои. И еще они используют какой то Simplified chinese. Я так и не понял - то ли усеченный набор иероглифов то ли набор английскими буквами китайских слов. Наборов иероглифов китайских во всяком случае там два... На этом мои познания в китайском заканчиваются :)


 
_REA   (2009-05-25 15:31) [14]

Если кто-то в состоянии вкурить про упрощенный китайский и системы транскрипции:

http://ru.wikipedia.org/wiki/Упрощение_иероглифов
http://ru.wikipedia.org/wiki/Системы_транскрипции_китайских_иероглифов

но их там все равно 2235, немного не дотянули до 255 :)


 
Игорь Шевченко ©   (2009-05-25 15:50) [15]

"В Китае все жители - китайцы и даже сам Император - китаец." (с)


> юникод по большому счету тоже - надо отдельные надписи иероглифами


Вообще-то DrawTextW - это и есть юникод


 
DVM ©   (2009-05-25 15:56) [16]


> _REA   (25.05.09 15:07) [13]


> их китайцев не поймешь, они и сами половину иероглифов не
> помнят и в каждой провинции там свои

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


 
_REA   (2009-05-25 17:02) [17]

>Вообще-то DrawTextW - это и есть юникод
Но я то использовал просто DrawText :) Но там видимо все-равно юникод, когда -1 длина. Как оно распознает где двухбайтовая (или сколько там положено) кодировка, а где однобайтовая даже не догадываюсь, но русские буквы показывает и иероглифы тоже с другим шрифтом и набором символов.

Китайцы вообще затейники - у них и знаки препинания другие: есть просто запятая, а есть запятая для перечислений, или к примеру просто точка и точка для инициалов.


 
Игорь Шевченко ©   (2009-05-25 17:53) [18]


> Но я то использовал просто DrawText


Код в студию. D7 по умолчанию подразумевает DrawTextA


 
_REA   (2009-05-26 15:33) [19]

А какой код то? Просто вот так:
Windows.DrawText(Canvas.Handle, PChar(s), -1, rc, TextFlags);


 
_REA   (2009-05-26 15:46) [20]

Я кстати понял как китайцы вводят текст, если кому интересно: при нажатии на кнопку появляется панелька ввода с латинской буквой. По мере набора формируется кусок транскрипции из латинских букв и когда транскрипция совпадает с иероглифом появляется иероглиф уже в поле ввода.


 
Игорь Шевченко ©   (2009-05-26 16:11) [21]


> А какой код то?


Интересно же, как у тебя получается комбинация английского и китайского без использования Unicode на некитайской Windows


 
_REA   (2009-06-01 10:53) [22]

Моя не знать :)
Оно само как то разбирается - видимо все что до 127 нечетными буквами - английские, все что выше - китайское. При таком подходе можно закодировать 32768 иероглифов, что есть дофига - они там порядка 5000 используют.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2010.03.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.005 c
2-1263804946
Олег1963
2010-01-18 11:55
2010.03.21
RandomRange не компилируется в модуле


6-1214837103
Валентин
2008-06-30 18:45
2010.03.21
Эмуляция DHCP


2-1263898004
виктор
2010-01-19 13:46
2010.03.21
Как изменить свойство группы компонентов?


2-1263562192
fford
2010-01-15 16:29
2010.03.21
вызов функции из потока


15-1262522391
И. Павел
2010-01-03 15:39
2010.03.21
PHP - не хватает прав для выполнения fopen





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский