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

Вниз

Поддержка русского языка только в моей программе   Найти похожие ветки 

 
Ping-Pong   (2007-01-29 23:25) [0]

Delphi не поддерживает Юникод. Устанавливать для текущего пользователя "Язык программ, не поддерживающих Юникод" в настройках системы вручную - проблематично. Пользователь может установить свой язык, и возмущаться по поводу неправильной работы моей программы.

Как задать только для моей программы, что она работает с Русским языком? Программно, в коде программы.


 
Ping-Pong   (2007-01-30 09:03) [1]

Нашел SetThreadLocale(), но она, почему-то, не работает.


 
Ping-Pong   (2007-01-30 11:14) [2]

Неужели нет решения?


 
Плохиш ©   (2007-01-30 11:28) [3]

tntlib


 
Ping-Pong   (2007-01-30 12:12) [4]

Хотелось бы обойтись стандартными средствами, без использования сторонних компонентов.


 
ЮЮ ©   (2007-01-30 12:33) [5]


> Хотелось бы обойтись стандартными средствами, без использования
> сторонних компонентов.


Тогда можно:
1) ограничиться компонентами, имеющими обработчики типа OnDrawXXX, где использовать виндовозные функции для WideString, т.е., например, не TextOut[A], а TextOutW
2) в программе использовать не String, а WideString
3) использовать Unicodный шрифт

Посли таких извращений программа писала по-русски на японской Win98


 
alex_*** ©   (2007-01-30 12:38) [6]

а что значит писала по-русски? Ресурсы в юникоде же лежат... Чтобы MessageBox по-русски был?


 
Ping-Pong   (2007-01-30 15:50) [7]

Ресурсы в юникоде же лежат...

Выводятся они потом как простые анси-строки. А для этого - преобразуются в фоновом режиме (кем? ОС?) из юникода в анси-строки. И под ОС с настройками "не-русскими" отображаются "?????", потому что алгоритм преобразования тупит, и не понимает, в какой язык преобразовывать (ну, тут кто угодно ступил бы). Вот, как заставить эти внутренние механизмы ОС производить преобразования строк из Юникода в анси-строки (и наоборот), учитывая, что строки эти - на русском языке? То есть, я хочу сказать операционной системе, что моя программа работает на русском языке, в Win-кодировке. Как это сделать?


 
alex_*** ©   (2007-01-30 16:39) [8]

а СHARSET в фонте русский поставил?


 
Ping-Pong   (2007-01-30 16:45) [9]

а СHARSET в фонте русский поставил?

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


 
alex_*** ©   (2007-01-30 17:57) [10]

ну хз тогда :(


 
iXT ©   (2007-01-30 18:05) [11]

Если юзер на своей (не русской) оси ставит для "Юникод" не русский, значит ему нафиг не нужна твоя прога


 
Ping-Pong   (2007-01-30 18:18) [12]

Если юзер на своей (не русской) оси ставит для "Юникод" не русский, значит ему нафиг не нужна твоя прога

Давай, пользователь сам будет решать, что ему надо. Без твоих "ценных" комментариев. Договорились?

У юзера стоит еще Квик-букс английская, и еще разные приложения. И под "Юникод -> Русский" у него вместо символов валют выводятся знаки вопроса (то есть, то же, что и для русских букв при нерусских настройках). С одной стороны - моя программа, с другой стороны - другие программы. Как решить проблему? Перезагружаться, каждый раз меняя язык? Гы...


 
Плохиш ©   (2007-01-30 18:27) [13]


> Ping-Pong   (30.01.07 18:18) [12]

Значит надо твою программу заставить поддерживать юникод. Извини, если не прав.


 
Ping-Pong   (2007-01-30 18:39) [14]

Значит надо твою программу заставить поддерживать юникод

Уже понял, что другого решения нет.
Сижу, компоненты правлю. Хорошо хоть большинство самописные.
Работы!...


 
GrayFace ©   (2007-01-30 20:13) [15]

Ну, можно самому загружать строки из файла... У меня в прогах основной язык - английский, а другие берутся из Language.txt. См. RSLang в http://delphimaster.net/view/15-1169883926/
C MessageBox"ами, конечно, придется использовать W-версию (или MessageBoxEx?).


 
Ping-Pong   (2007-01-30 21:14) [16]

У меня и так компонентов своих больше 100 штук в проекте.
То есть, повторюсь, я не буду использовать сторонние компоненты.

Ладно, можно считать обсуждение закрытым.



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

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

Наверх




Память: 0.5 MB
Время: 0.043 c
15-1169595372
IMHO
2007-01-24 02:36
2007.02.18
Опрос: где ваши программы хранят данные?


2-1169815267
Ламерюга
2007-01-26 15:41
2007.02.18
Достучаться до TOpenDialog


2-1170076509
-Саня-
2007-01-29 16:15
2007.02.18
Подключение DBF через ADO


15-1169562476
default
2007-01-23 17:27
2007.02.18
Можно ли в .NET малой кровью получить регион


2-1170411741
temp456
2007-02-02 13:22
2007.02.18
Ctrl, чтоб он всегда "был зажат"





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский